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

我得到的错误是: -

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

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

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

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

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

4

1 回答 1

3

该变量为您提供了从包含 的目录subdir的路径,因此您只需要传递to而不是裸露的. 像这样:crawlFolderfileos.path.join(crawlFolder, subdir, file)openfile

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

]

于 2010-08-02T22:07:54.497 回答