我有一个包含字符串整数和 float 的列表。我想将它转换成一个字符串并将其保存到文件(CSV 格式)——我不想手动转换每个字段——但我也不想使用 CSV 解析模块,因为它对于快速而肮脏的脚本来说太重量级了它的格式永远不会改变。
执行此操作的 pythonic 方法是什么? “.join()”模式失败,因为列表包含非字符串成员。
请您参考如下方法:
I would also prefer not to use the CSV parsing module as it is too heavyweight for a quick and dirty script
真的,成本是多少?几毫秒的运行时间,还是几分钟的开发时间?
which has a format that never changes
那是无关紧要的。您有需要转义、引用、格式化等的数据。数据本身将来是否会发生变化,即使格式没有变化?无论如何,您最终只会重新发明 CSV 模块中的解决方法,但可能不会那么全面。
import csv
data_row = [1, 2.0, "three", "pi,plus,one"]
# Assuming Python 2.x
# ...in Python 3 use text mode: open("...", 'w', newline='')
with open("datafile.csv", 'wb') as datafile:
datawriter = csv.writer(datafile)
datawriter.writerow(data_row)
使用 join 方法会缩短一行 — 并且假设您不需要自行转义等。
(有关文件打开模式背后的原因,请参阅 CSV writer docs 和 this answer。)
