帮助IOError读取文件

时间:2010-08-02 22:02:49

标签: python file directory ioerror

for subdir, dirs, files in os.walk(crawlFolder):
    for file in files:
         print os.getcwd()
         f=open(file,'r')
         lines=f.readlines()
         writeFile.write(lines)
         f.close()
writeFile.close()   

我收到的错误是: -

IOError:[Errno 2]没有这样的文件或目录

参考上面我的部分python代码: -

print os.getcwd() - > C:\ search engine \ taxonomy

但是,该文件位于“C:\ search engine \ taxonomy \ testFolder”目录中

我知道错误是因为它在当前目录中工作,我需要以某种方式将目录testFolder附加到文件中。有人可以请更正我的代码并帮我解决这个问题吗? 谢谢。

1 个答案:

答案 0 :(得分:3)

subdir变量为您提供从crawlFolder到包含file的目录的路径,因此您只需将os.path.join(crawlFolder, subdir, file)传递给open而不是filefor subdir, dirs, files in os.walk(crawlFolder): for file in files: print os.getcwd() f=open(os.path.join(crawlFolder, subdir, file),'r') lines=f.readlines() writeFile.write(lines) f.close() writeFile.close() 。像这样:

for subdir, dirs, files in os.walk(crawlFolder):
    for file in files:
         print os.getcwd()
         f=open(os.path.join(crawlFolder, subdir, file),'r')
         writeFile.writelines(f)
         f.close()
writeFile.close()

顺便说一句,这是将文件复制到另一个文件的更有效方法:

for subdir, dirs, files in os.walk(crawlFolder):
    for file in files:
         writeFile.writelines(open(os.path.join(crawlFolder, subdir, file)))
writeFile.close()

[编辑:无法抗拒打高尔夫球的诱惑:

{{1}}

<强>