我尝试遍历文件夹并读取文件,但只有第一个文件打开并正确读取,但第二个文件打印名称并通过错误“IOError:[Errno 2]没有这样的文件或目录:”。我试过以下
for filename in os.listdir("pathtodir\DataFiles"):
if filename.endswith(".log"):
print(os.path.join("./DataFiles", filename))
with open(filename) as openfile:
for line in openfile:
........
答案 0 :(得分:11)
os.listdir()
只提供文件名,但不提供文件路径:
import os
for filename in os.listdir('path/to/dir'):
if filename.endswith('.log'):
with open(os.path.join('path/to/dir', filename)) as f:
content = f.read()
或者,您可以使用glob
模块。 glob.glob()
功能允许您使用模式过滤文件:
import os
import glob
for filepath in glob.glob(os.path.join('path/to/dir', '*.log')):
with open(filepath) as f:
content = f.read()
答案 1 :(得分:1)
使用id
仅返回您传递的目录的文件名,但不返回文件的完整路径。打开文件时,还需要包含相对目录路径。
os.listdir(...)