读取文件时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 个回答
3
这个 subdir
变量告诉你从 crawlFolder
到包含 file
的文件夹的路径,所以你只需要把 os.path.join(crawlFolder, subdir, file)
传给 open
,而不是直接用 file
。就像这样:
for 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()
]