2010-08-02 87 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