You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:15:21