python怎么遍历电脑文件

python怎么遍历电脑文件

作者:Elara发布时间:2026-08-05 08:06阅读时长:23 分钟阅读次数:3
常见问答
Q
在 Python 里,如何快速查看某个文件夹下有哪些文件?

如果我只想知道一个目录里都有哪些文件,不需要读取内容,Python 有哪些常用做法?

A

使用 os.listdir 或 pathlib 查看目录内容

可以用 Python 自带的 os.listdir() 获取目录中的所有条目,也可以用 pathlib.Path.iterdir() 遍历目录。若只关心文件名,os.listdir() 很直接;若想写出更现代、可读性更好的代码,pathlib 更推荐。示例:

from pathlib import Path

p = Path('D:/test')
for item in p.iterdir():
    print(item.name)

如果还想区分文件和文件夹,可以结合 item.is_file() 和 item.is_dir() 判断。

Q
遍历文件夹时,怎样只处理其中的文件而忽略子文件夹?

我在遍历目录时,只想对普通文件做操作,不想把子目录也当作文件处理,应该怎么写?

A

在遍历时通过判断类型筛选文件

可以在遍历目录时对每个条目做类型判断,只对文件执行操作。使用 pathlib 时很方便:

from pathlib import Path

p = Path('D:/test')
for item in p.iterdir():
    if item.is_file():
        print(item)

如果目录层级比较多,也可以配合递归遍历。只遍历当前层时用 iterdir(),想连子目录里的文件一起处理,可以用 rglob('*') 再过滤文件类型。

Q
如果文件夹里还有很多子文件夹,Python 怎么递归遍历全部文件?

我的目录结构比较深,想把所有层级里的文件都找出来,Python 有什么简单写法?

A

使用 os.walk 或 pathlib 的 rglob 递归遍历

递归遍历目录时,os.walk() 和 pathlib.Path.rglob() 都很常用。os.walk() 会逐层返回当前目录、子目录和文件列表;rglob() 则可以直接匹配所有层级的文件。示例:

from pathlib import Path

p = Path('D:/test')
for file_path in p.rglob('*'):
    if file_path.is_file():
        print(file_path)

如果你想同时获取文件夹和文件,os.walk() 更灵活;如果你只想快速拿到所有文件路径,rglob() 会更简洁。

Q
遍历文件时,怎样读取每个文本文件的内容?

我不仅想找到文件,还想在遍历过程中顺便打开并读取文本内容,应该注意什么?

A

遍历文件路径后用 open 读取内容

可以先遍历拿到文件路径,再用 open() 打开文本文件读取内容。建议明确指定编码,避免乱码问题。示例:

from pathlib import Path

p = Path('D:/test')
for file_path in p.rglob('*.txt'):
    if file_path.is_file():
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read()
            print(file_path.name)
            print(content)

如果文件很大,不建议一次性读入内存,可以用 for line in f: 逐行处理,这样更省资源。

* 文章含AI生成内容