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

Python导入当前目录Dataset数据集出现PermissionError权限错误如何解决

问题原因
  • 核心逻辑错误:代码调用os.listdir(import_directory)获取了目录下的文件列表存入files变量,但后续循环遍历的对象是字符串import_directory而非files,会遍历字符串的每一个字符,路径拼接后生成非法路径,甚至会尝试将./Dataset目录本身作为npy文件传入np.load()读取,np.load()不支持读取目录,就会触发系统级权限报错。
  • 路径拼接错误:未处理路径分隔符,直接拼接目录路径和文件名会生成非法路径,比如./Dataset+test.npy会得到错误的./Datasettest.npy,找不到目标文件也可能触发异常。
  • 权限配置问题:如果当前运行Python脚本的用户没有./Dataset目录的读权限,也会触发该报错。
修复方案

修正后的完整代码如下:

import os
import numpy as np

import_directory = "./Dataset"
data_array = np.empty((0, 2))
# 修复1:遍历正确的文件列表,而非目录字符串
for file in os.listdir(import_directory):
    # 修复2:用os.path.join正确拼接路径,自动处理分隔符
    file_path = os.path.join(import_directory, file)
    # 跳过子目录和非npy文件,避免尝试读目录报错
    if not os.path.isfile(file_path) or not file.endswith('.npy'):
        continue
    print('Opening File : ', file)
    data_set = np.load(file_path)
    data_array = np.vstack((data_array, data_set))

额外可选修复操作:

  • 修正代码后仍报权限错误的话,可调整目录权限:Linux/macOS系统下在项目目录执行chmod -R 755 ./Dataset给目录开放读权限;Windows系统右键Dataset文件夹,在属性-安全设置中给当前用户添加读取权限。
  • 可替换为绝对路径定位Dataset目录,避免相对路径匹配错误:使用import_directory = os.path.join(os.path.dirname(__file__), "Dataset")自动获取fyp.py所在目录下的Dataset路径,规避工作目录不一致导致的路径错误。

内容的提问来源于stack exchange,提问作者Pravin Kori

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:54:05