Python中的errno 2 - 没有该文件或目录

1 投票
1 回答
968 浏览
提问于 2025-04-17 19:22

我正在尝试从我的数据目录中的每个文件计算出最大的值,使用的代码如下:

from os import listdir 

def max_files(dir):
    l = listdir(dir)
    for n in l:
        list_num(n)

def list_num(file):
    f = open(file)
    lines = f.readlines()   
    v=[]
    for n in lines:
        for s in n.split():
            v.append(float(s))  
            mx = v[0]  
            maxi=[] 
            for i in v:
                if i > mx:
                    mx = i
                    maxi.append(mx)
            continue
       continue
    return maxi

print max_files(path)

我也检查过我的路径,完全正确。出现的错误是:

f = open(file)
IOError: [Errno 2] No such file or directory: 'bvp.txt'

bvp.txt 是数据目录中列出的第一个文件。

这个问题为什么会发生,我该怎么解决呢?

1 个回答

0

你遇到了一个常见的问题,这个问题出现在使用返回文件列表的函数时,特别是当你在一个文件夹里查看文件时。

listdir 这个函数只是返回了那个文件夹里的文件名列表,并没有返回这些文件的完整路径。所以,如果你操作的文件夹不是当前工作目录,这样做就会出错;因为你实际上是在尝试打开当前目录下的文件。

每次使用 listdir 的结果时,如果你不打算切换到那个目录,你就需要在打开文件之前,把目录名加回到文件名上。因此,应该把文件的完整路径传给 list_num,而不是仅仅传文件名:

list_num(dir + '/' + n)

撰写回答