首页 >后端开发 >Python教程 >为什么在Python中打开文件时`os.listdir()`会导致`FileNotFoundError`?

为什么在Python中打开文件时`os.listdir()`会导致`FileNotFoundError`?

DDD
DDD原创
2024-12-07 14:22:13561浏览

Why Does `os.listdir()` Cause `FileNotFoundError` in Python When Opening Files?

使用 os.listdir 时 Python 中出现文件未找到错误

使用 os.listdir() 迭代目录中的文件可能会触发FileNotFoundError,即使文件存在。发生此错误的原因是 os.listdir() 仅返回文件名,而不是完整路径。

考虑以下代码:

import os

path = r'E:/somedir'

for filename in os.listdir(path):
    f = open(filename, 'r')

执行时,此代码将生成 FileNotFoundError文件 'foo.txt',即使它存在于指定目录中。

问题在于 os.listdir() 返回仅文件名部分,例如“foo.txt”。但是,open() 函数需要文件的完整路径,包括目录路径,例如 '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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn