1. 程式人生 > >python開啟os.walk()返回檔案出現找不到檔案的問題

python開啟os.walk()返回檔案出現找不到檔案的問題

問題描述

執行下面程式碼時,會出現No such file or directory錯誤
import os
os.chdir("E:/new/a")
for root ,dirs,files in os.walk(".",topdown=False):
    
    for f in files:   
        fo=open(f,encoding="gbk",errors="ignore")
        l=fo.readlines()

原因剖析

因為f沒有路徑,只有檔名,例如只有個1.txt的話又與程式不在同一目錄下open函式就找不到該檔案了。

解決方法

在open前新增
f=os.path.join(root, f)
 os.path.join()作用連線一個或多個檔案路徑,例如:os.path.join('c:/',''foo'),輸出:c:/foo
最終程式碼:
import os
os.chdir("E:/new/a")
a="42";
for root ,dirs,files in os.walk(".",topdown=False):
    
    for f in files:   
        f=os.path.join(root, f)
        print(f)
        fo=open(f,encoding="gbk",errors="ignore")
        l=fo.readlines()