为什么我有一个IO错误说我的文件不存在,即使它确实存在于目录中?

2024-05-21 17:35:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图循环一个Python目录,我有一个特定的文件,它恰好是目录中的最后一个文件,因此我得到了该特定文件的IOerror

我得到的错误是:

IOError: [Errno 2] No such file or directory: 'nod_gyro_instance_11_P_4.csv'

我的剧本:

for filename in os.listdir("/Users/my_name/PycharmProjects/My_Project/Data/Nod/Gyro"):
data = []
if filename.endswith(".csv"):
    data.append(k_fold(filename))
    continue
else:
    continue

k\u fold的作用是:

def k_fold(myfile, myseed=11109, k=20):
# Load data
data = open(myfile).readlines()

整个回溯:

Traceback (most recent call last):
 File "/Users/my_name/PycharmProjects/MY_Project/Cross_validation.py", line 30, in <module>
data.append(k_fold(filename))
  File "/Users/my_name/PycharmProjects/My_Project/Cross_validation.py", line 8, in k_fold
data = open(myfile).readlines()
IOError: [Errno 2] No such file or directory: 'nod_gyro_instance_11_P_4.csv'

我的CSV文件如下:

nod_gyro_instance_0_P_4.csv
nod_gyro_instance_0_P_3.csv
nod_gyro_instance_0_P_2.csv
nod_gyro_instance_0_P_5.csv

...

nod_gyro_instance_11_P_4.csv
nod_gyro_instance_10_P_6.csv
nod_gyro_instance_10_P_5.csv
nod_gyro_instance_10_P_4.csv

为什么它不能识别我的nod_gyro_instance_10_P_4.csv文件


Tags: 文件csvinstancenameinprojectdatamy
1条回答
网友
1楼 · 发布于 2024-05-21 17:35:17

os.listdir只返回文件名,不返回绝对路径。如果当前不在同一目录中,则尝试读取该文件将失败

您需要将dirname加入到返回的文件名中:

data_dir = "/Users/my_name/PycharmProjects/My_Project/Data/Nod/Gyro"
for filename in os.listdir(data_dir):
    k_fold(os.path.join(data_dir, filename))

或者,您可以使用glob执行列表(使用完整路径)和扩展筛选:

import glob
for filename in glob.glob("/Users/my_name/PycharmProjects/My_Project/Data/Nod/Gyro/*.csv"):
    k_fold(filename)

相关问题 更多 >