如何在Python中将处理后的列表c导出为.csv文件?
解决Python中处理数据并导出CSV的问题
嘿,我来帮你搞定把处理后的结果导出成CSV文件的问题,顺便也修正你代码里的几个小细节~
首先先说说你现有代码里的小问题:
- 你用到了
d.append(b)但变量d根本没定义,运行的时候会直接报错 - 你把处理后的行拼接成了字符串
c,虽然打印出来没问题,但用Python的csv模块处理列表格式的数据会更规范,还能避免手动拼接可能出现的格式错误(比如如果字段里有逗号的话)
下面是修正并优化后的完整代码,既能实现你想要的处理逻辑,又能把结果导出成CSV文件:
import csv # 第一步:读取原始文件并处理数据 processed_rows = [] with open('stat_memory_cpu.txt', 'r') as input_file: reader = csv.reader(input_file) next(reader) # 跳过第一行的"Data"标题行 for row in reader: # 清理时间列,去掉开头的"180510 " cleaned_time = row[0].replace('180510 ', '') # 组装成新的行数据(用列表格式更适合CSV操作) new_row = [cleaned_time, row[1], row[2]] processed_rows.append(new_row) # 打印处理后的结果,和你期望的输出一致 print(','.join(new_row)) # 第二步:将处理后的数据导出到CSV文件 with open('output.csv', 'w', newline='') as output_file: writer = csv.writer(output_file) writer.writerows(processed_rows)
代码说明:
- 用
next(reader)跳过标题行,比固定循环range(1,5)更灵活,就算你的输入文件行数增加,代码也能自动处理所有数据行 - 把处理后的每行存为列表
new_row,而不是字符串,这样csv.writer可以自动处理CSV的格式规范(比如字段包含特殊字符时的转义) newline=''是写入CSV文件的最佳实践,能避免在Windows系统下生成多余的空行writer.writerows(processed_rows)可以一次性把所有处理好的数据写入文件,效率很高
如果你想更精简,也可以把读取和写入合并成一个步骤,不需要额外存储整个列表,适合处理大文件:
import csv with open('stat_memory_cpu.txt', 'r') as input_file, open('output.csv', 'w', newline='') as output_file: reader = csv.reader(input_file) writer = csv.writer(output_file) next(reader) # 跳过标题行 for row in reader: cleaned_time = row[0].replace('180510 ', '') # 直接逐行写入CSV writer.writerow([cleaned_time, row[1], row[2]]) # 同时打印结果 print(','.join([cleaned_time, row[1], row[2]]))
运行这段代码后,你就能得到一个名为output.csv的文件,里面的内容就是你期望的结果啦~
内容的提问来源于stack exchange,提问作者shunmuga prakash
相关产品推荐
相关产品推荐

