You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将文件夹中所有TXT文件内容输出至终端?求助

嘿,我来帮你搞定这个问题!你想用Python把文件夹里的TXT文件内容输出到终端,之前试了listdir()没成功对吧?大概率是没处理好文件路径或者过滤文件的问题,我给你几个实用的方案,一步步来:

方案1:使用os模块(兼容Python2和3)

os.listdir()本身没问题,但它返回的只是文件夹里的文件名,不是完整路径,直接打开会找不到文件;另外也要记得过滤非TXT文件,避免报错。试试这段代码:

import os

# 替换成你的文件夹路径,比如 "./my_txt_files" 或者绝对路径如 "C:/Users/xxx/Documents/txts"
folder_path = "你的文件夹路径"

# 遍历文件夹里的所有条目
for filename in os.listdir(folder_path):
    # 只处理后缀为.txt的文件
    if filename.endswith(".txt"):
        # 拼接完整文件路径,避免路径错误
        file_path = os.path.join(folder_path, filename)
        # 用with语句打开文件,自动处理关闭,更安全
        with open(file_path, "r", encoding="utf-8") as f:
            print(f"=== {filename} 的内容 ===")
            print(f.read())
            print("\n" + "-"*50 + "\n")  # 加个分隔线,不同文件内容区分更清楚

方案2:使用pathlib模块(Python3.4+推荐)

这是Python3.4之后引入的更现代的路径处理方式,代码更简洁易读,不用手动拼接路径,直接就能过滤TXT文件:

from pathlib import Path

# 替换成你的文件夹路径
folder_path = Path("你的文件夹路径")

# 直接匹配所有.txt文件,glob方法帮你过滤
for txt_file in folder_path.glob("*.txt"):
    print(f"=== {txt_file.name} 的内容 ===")
    # read_text()直接读取文本内容,默认utf-8编码
    print(txt_file.read_text())
    print("\n" + "-"*50 + "\n")

额外需求:递归遍历子文件夹里的TXT文件

如果你的文件夹还有嵌套的子文件夹,需要把里面的TXT也输出,试试递归版本:

用os模块实现:

import os

folder_path = "你的文件夹路径"

# os.walk会遍历所有子文件夹,返回(当前路径, 子文件夹列表, 文件列表)
for root, dirs, files in os.walk(folder_path):
    for filename in files:
        if filename.endswith(".txt"):
            file_path = os.path.join(root, filename)
            with open(file_path, "r", encoding="utf-8") as f:
                # 显示相对路径,更清楚文件位置
                print(f"=== {os.path.relpath(file_path, folder_path)} 的内容 ===")
                print(f.read())
                print("\n" + "-"*50 + "\n")

用pathlib实现:

from pathlib import Path

folder_path = Path("你的文件夹路径")

# rglob是递归版的glob,匹配所有子文件夹里的.txt文件
for txt_file in folder_path.rglob("*.txt"):
    print(f"=== {txt_file.relative_to(folder_path)} 的内容 ===")
    print(txt_file.read_text(encoding="utf-8"))
    print("\n" + "-"*50 + "\n")

小提示

如果读取文件时遇到UnicodeDecodeError,说明文件编码不是utf-8,试试把encoding参数改成gbk或者gb2312(很多中文TXT用这个编码)。

内容的提问来源于stack exchange,提问作者captainfreaked

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:25:39