在 Python 中,当使用 os.listdir 迭代目录中的文件时,用户可能会遇到 FileNotFoundError。这是因为 os.listdir 只返回文件名,而不是完整路径。
考虑以下代码:
import os path = r'E:/somedir' for filename in os.listdir(path): f = open(filename, 'r')
运行此代码时,Python 将引发 FileNotFoundError,即使文件存在。这是因为 open 在处理文件“foo.txt”时需要文件的完整路径,即“E:/somedir/foo.txt”。
要解决此问题,请使用 os.path .join 将目录添加到文件名前面:
path = r'E:/somedir' for filename in os.listdir(path): with open(os.path.join(path, filename)) as f: # process the file
此外,代码可以使用 with 块自动关闭文件。
以上是为什么在Python中打开文件时`os.listdir`会导致`FileNotFoundError`?的详细内容。更多信息请关注PHP中文网其他相关文章!