如何用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
相关产品推荐
相关产品推荐

