2010-08-02 91 views
2
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() 

我得到的错误是: -帮助,IO错误读取文件

IO错误:[错误2]没有这样的文件或目录

在提到我的部分Python代码上面: -

打印os.getcwd() - > C:\搜索引擎\分类

然而,该文件位于在目录 “C:\搜索引擎\分类\ testFolder”

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

回答

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() 

]

+0

1:○ s.path.join。 – 2010-08-02 22:27:08

+0

谢谢你的帮助。 – 2010-08-02 22:38:08