Python读取本地TIF文件遇PermissionError: [Errno 13]权限拒绝求助
解决读取TIF文件时的PermissionError问题
核心问题定位
你传入tif.imread()的是文件夹路径,而非具体的TIF文件路径。tif.imread仅能读取单个或指定的多个TIF文件,无法直接读取整个文件夹,这是触发错误的主要原因。同时OneDrive路径的特殊权限机制也可能加剧这个问题。
具体解决步骤
1. 修正路径,遍历读取文件夹内的TIF文件
如果需要读取文件夹下所有TIF文件,需遍历文件夹逐个读取,示例代码:
import os import numpy as np import tifffile as tif # 定义文件夹路径 image_dir = r"C:\Users\abouf\OneDrive\Desktop\Deep_Learning\Training_Data\T\images" mask_dir = r"C:\Users\abouf\OneDrive\Desktop\Deep_Learning\Training_Data\T\labels" large_image_stack = [] # 遍历图片文件夹 for filename in os.listdir(image_dir): if filename.lower().endswith((".tif", ".tiff")): file_path = os.path.join(image_dir, filename) # 读取单个TIF文件 img = tif.imread(file_path) large_image_stack.append(img) # 转换为numpy数组用于批量处理 large_image_stack = np.array(large_image_stack) # 标签文件同理处理 large_mask_stack = [] for filename in os.listdir(mask_dir): if filename.lower().endswith((".tif", ".tiff")): file_path = os.path.join(mask_dir, filename) mask = tif.imread(file_path) large_mask_stack.append(mask) large_mask_stack = np.array(large_mask_stack)
2. 处理OneDrive的权限限制
- 等待同步完成:OneDrive在同步文件时会锁定文件,此时无法读取,等右下角同步图标显示完成后再运行代码
- 检查文件夹权限:右键目标文件夹 → 属性 → 安全 → 确认当前登录用户拥有读取/写入权限,若没有则点击编辑添加对应权限
- 迁移到本地路径:把TIF文件复制到非OneDrive的本地文件夹(比如
D:\Training_Data),再尝试读取,排除OneDrive的特殊权限干扰
3. 其他排查点
- 关闭占用文件的软件:检查TIF文件是否被Photoshop、ArcGIS等软件打开,打开状态下文件会被锁定,关闭后再读取
- 以管理员身份运行IDE:右键Python开发工具(VS Code/PyCharm等),选择以管理员身份运行,再执行代码,避免系统权限限制
内容的提问来源于stack exchange,提问作者Alexandre Bouffard
相关产品推荐
相关产品推荐

