Python如何修改现有XLSX导出代码实现带自定义表头的CSV导出功能
代码调整方案
核心修改点
- 替换依赖:移除第三方库
xlsxwriter引用,改用Python标准库自带的csv模块,无需额外安装 - 调整写入逻辑:取消xlsx格式特有的工作簿、工作表层级操作,直接通过csv写入对象操作文件流即可,额外指定
newline=''避免Windows系统下生成的CSV出现多余空行,指定编码为utf-8-sig避免Excel打开时中文乱码 - 适配调用要求:函数名改为
create_csv_file,参数定义和原函数完全一致,原有传参逻辑无需修改
完整实现代码
import csv def create_csv_file(file_path: str, headers: dict, items: list): # 打开文件时指定newline避免Windows下多余空行,utf-8-sig编码适配Excel读取 with open(file_path, 'w', newline='', encoding='utf-8-sig') as f: writer = csv.writer(f) # 写入表头行 writer.writerow(headers.values()) header_keys = list(headers.keys()) for item in items: # 按表头顺序取对应字段值,缺省字段填充空字符串 row = map(lambda field_id: item.get(field_id, ''), header_keys) writer.writerow(row) # 原有测试数据无需修改 headers = { 'bank': 'Money in Bank', 'dailyWinners': 'Daily Winners', 'dailyFree': 'Daily Free', 'user': 'User', } players = [ {'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player1', 'bank': 0.06}, {'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player2', 'bank': 4.0}, {'dailyWinners': 1, 'dailyFree': 2, 'user': 'Player3', 'bank': 3.1}, {'dailyWinners': 3, 'dailyFree': 2, 'user': 'Player4', 'bank': 0.32} ] # 按要求形式调用 create_csv_file("my csv file.csv", headers, players)
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

