Python中的errno 2 - 没有该文件或目录
我正在尝试从我的数据目录中的每个文件计算出最大的值,使用的代码如下:
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)