读取GeoJson文件时遭遇CPLE_OpenFailedError错误求助
CPLE_OpenFailedError与DriverError:文件不存在错误解析
错误核心含义
CPLE_OpenFailedError是GDAL地理数据处理库底层抛出的错误,直接指向指定路径下的文件或目录不存在;后续的DriverError是GeoPandas依赖的Fiona库基于底层错误抛出的上层异常,二者本质原因完全一致:程序无法定位你提供的GeoJSON文件。
可能的原因及解决办法
相对路径不匹配
你使用的是相对路径,但Python程序的当前工作目录可能和你预期的不一致。先执行以下代码查看当前工作目录:import os print(os.getcwd())确认GeoJSON文件路径是否相对于该目录正确,或直接改用绝对路径读取。
OneDrive路径特殊性
Windows系统中OneDrive的实际路径并非简单的OneDrive/...,通常是类似C:/Users/你的用户名/OneDrive/pscript/Practice_1/data/acs2022_5yr_B01003_15000US060371198021.geojson的绝对路径。建议直接复制文件完整绝对路径:gdf = gpd.read_file('C:/Users/你的用户名/OneDrive/pscript/Practice_1/data/acs2022_5yr_B01003_15000US060371198021.geojson')路径或文件名拼写错误
仔细检查路径中的斜杠方向(建议用/或转义的\\)、大小写(部分环境对大小写敏感)、是否存在多余空格或拼写错误的目录/文件名。文件实际不存在
确认GeoJSON文件确实存放在指定路径下,未被移动、重命名或删除。
错误详情(中文翻译版)
--------------------------------------------------------------------------- CPLE_OpenFailedError Traceback (most recent call last) 文件 fiona\ogrext.pyx:136, 位于 fiona.ogrext.gdal_open_vector() 文件 fiona\_err.pyx:291, 位于 fiona._err.exc_wrap_pointer() CPLE_OpenFailedError: OneDrive/pscript/Practice_1/data/acs2022_5yr_B01003_15000US060371198021.geojson: 没有该文件或目录 在处理上述异常期间,又发生了新的异常: DriverError Traceback (most recent call last) 单元格 In[6], 第3行 1 # 加载数据文件 2 # 注意相对文件路径!这个文件在哪里? ----> 3 gdf = gpd.read_file('OneDrive/pscript/Practice_1/data/acs2022_5yr_B01003_15000US060371198021.geojson') 文件 ~\anaconda3\Lib\site-packages\geopandas\io\file.py:297, 位于 _read_file(filename, bbox, mask, rows, engine, **kwargs) 294 else: 295 path_or_bytes = filename ---> 297 return _read_file_fiona( 298 path_or_bytes, from_bytes, bbox=bbox, mask=mask, rows=rows, **kwargs 299 ) 301 else: 302 raise ValueError(f"未知引擎 '{engine}'") 文件 ~\anaconda3\Lib\site-packages\geopandas\io\file.py:338, 位于 _read_file_fiona(path_or_bytes, from_bytes, bbox, mask, rows, where, **kwargs) 335 reader = fiona.open 337 with fiona_env(): ---> 338 with reader(path_or_bytes, **kwargs) as features: 339 crs = features.crs_wkt 340 # 尝试获取EPSG代码 文件 ~\anaconda3\Lib\site-packages\fiona\env.py:457, 位于 ensure_env_with_credentials.<locals>.wrapper(*args, **kwds) 454 session = DummySession() 456 with env_ctor(session=session): ---> 457 return f(*args, **kwds) 文件 ~\anaconda3\Lib\site-packages\fiona\__init__.py:292, 位于 open(fp, mode, driver, schema, crs, encoding, layer, vfs, enabled_drivers, crs_wkt, allow_unsupported_drivers, **kwargs) 289 path = parse_path(fp) 291 if mode in ("a", "r"): ---> 292 colxn = Collection( 293 path, 294 mode, 295 driver=driver, 296 encoding=encoding, 297 layer=layer, 298 enabled_drivers=enabled_drivers, 299 allow_unsupported_drivers=allow_unsupported_drivers, 300 **kwargs 301 ) 302 elif mode == "w": 303 colxn = Collection( 304 path, 305 mode, (...) 314 **kwargs 315 ) 文件 ~\anaconda3\Lib\site-packages\fiona\collection.py:243, 位于 Collection.__init__(self, path, mode, driver, schema, crs, encoding, layer, vsi, archive, enabled_drivers, crs_wkt, ignore_fields, ignore_geometry, include_fields, wkt_version, allow_unsupported_drivers, **kwargs) 241 if self.mode == "r": 242 self.session = Session() ---> 243 self.session.start(self, **kwargs) 244 elif self.mode in ("a", "w"): 245 self.session = WritingSession() 文件 fiona\ogrext.pyx:588, 位于 fiona.ogrext.Session.start() 文件 fiona\ogrext.pyx:143, 位于 fiona.ogrext.gdal_open_vector() DriverError: OneDrive/pscript/Practice_1/data/acs2022_5yr_B01003_15000US060371198021.geojson: 没有该文件或目录
内容的提问来源于stack exchange,提问作者Jen H.
相关产品推荐
相关产品推荐

