Python加载UK ITL3区域Shapefile报错求助
问题描述
我正在用Python绘制地图,使用的是从ONS地理门户获取的英国ITL3区域Shapefile,运行代码时出现异常,报错信息如下:
Traceback (most recent call last): File "C:\Users\\PycharmProjects\pythonProject3\Map2.py", line 15, in <module> sf = shp.Reader(shp_path) File "C:\Users\AppData\Roaming\Python\Python39\site-packages\shapefile.py", line 1048, in __init__ self.load(path) File "C:\Users\AppData\Roaming\Python\Python39\site-packages\shapefile.py", line 1193, in load raise ShapefileException("Unable to open %s.dbf or %s.shp." % (shapeName, shapeName)) shapefile.ShapefileException: Unable to open \ITL3_JAN_2021_UK_BFE_V3.dbf or \ITL3_JAN_2021_UK_BFE_V3.shp.
使用的代码:
import numpy as np import pandas as pd import shapefile as shp import matplotlib.pyplot as plt import seaborn as sns sns.set(style="whitegrid", palette="pastel", color_codes=True) sns.mpl.rc("figure", figsize=(10,6)) #opening vector map shp_path ="\ITL3_JAN_2021_UK_BFE_V3.shp" sf = shp.Reader(shp_path) len(sf.shapes())
希望解决该问题,以查看Shapefile中包含的记录。
解决方法
- 修正文件路径:当前路径
"\ITL3_JAN_2021_UK_BFE_V3.shp"指向系统根目录,基本不可能正确。可改为文件的完整绝对路径,比如"C:/Users/你的用户名/PycharmProjects/pythonProject3/ITL3_JAN_2021_UK_BFE_V3.shp";如果文件和代码在同一文件夹,直接用文件名"ITL3_JAN_2021_UK_BFE_V3.shp"(去掉开头的反斜杠)。 - 检查配套文件完整性:Shapefile需要
.shp、.dbf、.shx三个核心文件放在同一目录,缺失任意一个都会导致读取失败。检查下载的压缩包是否解压完全,确认三个文件都在指定路径下。 - 处理路径转义:Windows路径中的反斜杠需要转义,可使用双反斜杠
"\\ITL3_JAN_2021_UK_BFE_V3.shp",或替换为正斜杠"/ITL3_JAN_2021_UK_BFE_V3.shp",最稳妥的方式还是使用完整绝对路径。 - 确认文件权限:不要将文件放在系统保护的文件夹(如C盘根目录、Program Files),可移至项目目录或普通用户文件夹,确保Python程序有权限访问该目录下的文件。
内容的提问来源于stack exchange,提问作者Ren
相关产品推荐
相关产品推荐

