问题描述
运行下面代码时,会出现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()