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




你可能感兴趣的:(python,python,os库,读取文件)