使用pandas读取交替存储序列号与生产日期的txt并导出为xlsx
问题排查
你之前写的代码跑不通是三个硬伤:
- 读文件的方式错了:你的txt每行只有一个值,要么是序列号要么是日期,根本没有空格分隔的多列,用
delimiter=" "读出来只有单列数据,直接取不存在的ProductionDate、SerialNumber列肯定报KeyError - 最后导出的对象错了:你拼接处理完存在
data变量里,结果导出的还是最开始读的原始df,等于白处理 - 没有做数据校验,一旦文件里有空行、错行,序列号和日期就会配错
可直接运行的实现代码
先安装依赖:pip install pandas openpyxl
import pandas as pd def read_txt_export_to_excel(): # 逐行读取文件,自动过滤空行、首尾空白字符 with open("serialnumbers.txt", "r", encoding="utf-8") as f: lines = [line.strip() for line in f.readlines() if line.strip()] serial_numbers = [] production_dates = [] # 按步长2遍历,逐组匹配序列号和对应日期 for i in range(0, len(lines), 2): sn = lines[i] # 校验X87固定前缀,不符合规则直接跳过避免错配 if not sn.startswith("X87"): continue # 边界判断,避免文件末尾缺行触发索引错误 if i + 1 >= len(lines): break serial_numbers.append(sn) production_dates.append(lines[i+1]) # 组装为DataFrame,使用要求的列名 output_df = pd.DataFrame({ "Serialnumbers": serial_numbers, "Production Date": production_dates }) # 导出时关闭pandas默认生成的行索引 output_df.to_excel("output.xlsx", index=False) # 执行函数 read_txt_export_to_excel()
代码说明
- 自带空行过滤、前缀校验、缺行兼容逻辑,不会因为文件格式小问题出现错配、报错
- 输出列名完全匹配需求,序列号和生产日期一一对应
- 导出文件无多余索引列,可直接使用
内容的提问来源于stack exchange,提问作者SabriLK
相关产品推荐
相关产品推荐

