如何用Python将XLSX数据按指定格式导出为TXT文件?
问题分析与解决方案
问题原因
你的代码错误地将每一列拆分为独立列表,通过嵌套循环反复覆盖变量值,最终每条记录都只输出各列表的最后一个元素,而非对应行的匹配数据。此外,代码中定义了带字段名的变量(如txt_name)但未实际使用,导致输出缺少要求的字段标签。
修正后的代码
import pandas as pd with open("waffles.txt", "w") as file: # 读取XLSX文件到DataFrame df = pd.read_excel('finals.xlsx') # 可选:将XLSX转为CSV(若需保留CSV文件) # df.to_csv('finals.csv', index=False) # 若使用CSV处理,替换上方read_excel为read_csv # df = pd.read_csv('finals.csv') # 遍历DataFrame的每一行 for idx, row in df.iterrows(): # 写入记录开头标记 file.write("*****NEW RECORD*****" + "\n") # 按格式写入字段名与对应值 file.write(f"Name : {row['Name']}" + "\n") file.write(f"Number : {row['Number']}" + "\n") file.write(f"Branch Manager : {row['Branch Manager']}" + "\n") # 写入记录结尾标记 file.write("*****RECORD END*****" + "\n") # 记录间添加空行(最后一条记录后不添加) if idx != len(df) - 1: file.write("\n")
关键改进点
- 直接遍历行数据:使用
iterrows()遍历DataFrame的每一行,确保同一行的字段值始终匹配。 - 正确输出字段标签:通过f-string格式化输出,包含要求的字段名(如
Name :)。 - 移除冗余操作:
pd.read_excel直接返回DataFrame,无需额外用pd.DataFrame()包装。 - 优化空行处理:仅在记录之间添加空行,避免文件末尾出现多余空行。
内容的提问来源于stack exchange,提问作者NoahFenseee
相关产品推荐
相关产品推荐

