Python如何提取txt文件名指定片段并生成pandas数据表
从指定文件夹文件名提取字段生成Pandas表格的实现方案
准备工作
- 全程不需要改动原文件夹里的txt文件,所有提取操作都是基于文件名的字符串解析完成
- 需要的依赖:Python内置的路径处理模块(Path/os,无需安装)、pandas库,如果没装可以执行
pip install pandas完成安装
实现逻辑
- 批量扫描目标文件夹,筛选出所有后缀为
.txt的文件,自动跳过其他格式的无关文件 - 逐个解析文件名:
- 先去掉文件名末尾的
.txt后缀,拿到纯文件名字符串 - 用文件名里的
-做分隔,拆分出两部分内容:前半段的数字转成整数就是Year字段,后半段的文本就是原始的总统姓名 - 可以在代码里内置一个映射表,自动修正原文件名里的拼写错误——比如示例里原文件把Washington拼成了Whasington,直接在映射表里替换就行,完全不用改原文件的名字
- 先去掉文件名末尾的
- 把所有解析得到的字段收集起来,按照要求的列顺序组装成Pandas表格,直接输出或者保存都可以
可直接运行的代码
from pathlib import Path import pandas as pd # 把这里替换成你自己存放txt文件的文件夹路径 target_folder = Path("你的实际文件夹路径") # 文件名拼写修正映射,遇到原文件的拼写错误直接在这里补充对应关系就行 spelling_fix = { "Whasington": "Washington" } all_records = [] # 遍历文件夹下所有txt文件 for f in target_folder.glob("*.txt"): # 拿到不带后缀的文件名 file_name_without_suffix = f.stem # 按-拆分字段,maxsplit=1保证姓名里如果有-也不会被截断 year_str, original_name = file_name_without_suffix.split("-", maxsplit=1) # 格式化字段 year = int(year_str) president_name = spelling_fix.get(original_name, original_name) all_records.append({"President": president_name, "Year": year}) # 生成符合要求格式的DataFrame result_table = pd.DataFrame(all_records, columns=["President", "Year"]) # 打印结果检查 print(result_table)
补充说明
- 代码运行过程中不会读取、修改任何原txt文件的内容,只会读取文件名做解析,不会对原有文件造成影响
- 后续如果往文件夹里新增符合
年份-姓名.txt命名规则的文件,直接重新运行脚本就能自动更新表格内容,不需要改代码逻辑
内容的提问来源于stack exchange,提问作者Handi Thenadiputto
相关产品推荐
相关产品推荐

