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

如何用Python提取目录下3000个TXT文件内容并输出为列表?

实现读取所有TXT文件内容到列表的方案

嘿,你已经搞定了最基础的文件路径获取,接下来只需要在这个基础上加上读取文件的逻辑就好啦!作为Python新手,用简单的循环加文件读取操作就能轻松实现需求,我给你分几种方式讲解:

基础版:直观循环读取(新手优先)

这个方式逻辑清晰,容易理解和调试,遇到问题也能快速定位:

import glob

# 第一步:获取所有txt文件的路径(你已经写好的部分)
file_paths = glob.glob("/Users/Downloads/Datasets/transcripts/*.txt")

# 第二步:遍历路径,逐个读取文件内容
content_list = []
for file_path in file_paths:
    try:
        # 使用with语句自动管理文件,避免忘记关闭文件的问题
        with open(file_path, 'r', encoding='utf-8') as txt_file:
            # 读取整个文件的内容
            file_content = txt_file.read()
            content_list.append(file_content)
    except Exception as e:
        # 处理可能出现的错误(比如编码问题、文件损坏)
        print(f"读取文件 {file_path} 时出错:{e}")
        # 可以选择添加空字符串占位,或者直接跳过该文件
        content_list.append("")

进阶版:用列表推导式简化代码

如果你想让代码更简洁,也可以用列表推导式,但新手还是优先推荐上面的循环写法,更容易排查问题:

import glob

def read_file_content(path):
    try:
        with open(path, 'r', encoding='utf-8') as f:
            return f.read()
    except Exception as e:
        print(f"读取错误:{e}")
        return ""

content_list = [read_file_content(path) for path in glob.glob("/Users/Downloads/Datasets/transcripts/*.txt")]

额外小技巧:关联文件名与内容

如果后续需要对应查看某个文件的内容,建议生成字典,方便排查:

import glob

content_dict = {}
for file_path in file_paths:
    try:
        with open(file_path, 'r', encoding='utf-8') as txt_file:
            content_dict[file_path] = txt_file.read()
    except Exception as e:
        print(f"读取文件 {file_path} 时出错:{e}")
        content_dict[file_path] = ""

注意事项

  • 编码问题:如果你的TXT文件不是UTF-8编码(比如GBK),可以把encoding='utf-8'改成对应的编码,或者加上errors='ignore'忽略无法解码的字符(比如open(file_path, 'r', encoding='utf-8', errors='ignore'))。
  • 大文件:如果有超大的TXT文件,read()会一次性把内容加载到内存,可能占用过多资源,这时候可以考虑按行读取,但你这里是3000个文本段落,应该问题不大。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:17:52