如何在python中的csv文件中写入数字作为文本

时间:2015-04-01 10:36:27

标签: python csv export-to-csv

import csv
a = ['679L', 'Z60', '033U', '0003']
z = csv.writer(open("test1.csv", "wb"))
z.writerow(a)

考虑上面的代码

输出:

676L   Z60   33U   3

我需要以文本格式将其作为

676L   Z60   033U   0003

怎么做。

1 个答案:

答案 0 :(得分:0)

Python csv模块在​​写入文件时将字符串视为数字:

>>> import csv
>>> from StringIO import StringIO
>>> a = ['679L', 'Z60', '033U', '0003']
>>> out = StringIO()
>>> z = csv.writer(out)
>>> z.writerow(a)
>>> out.getvalue()
'679L,Z60,033U,0003\r\n'

如果您在阅读时在其他工具中看到3,则需要修复该工具; Python在这里没有错。

您可以指示csv.writer()在非数字的任何地方放置引号;这个可以使任何读取CSV的内容都更清晰,该列不是数字。将quoting设为csv.QUOTE_NONNUMERIC

>>> out = StringIO()
>>> z = csv.writer(out, quoting=csv.QUOTE_NONNUMERIC)
>>> z.writerow(a)
>>> out.getvalue()
'"679L","Z60","033U","0003"\r\n'

但这不会阻止Excel将列视为数字无论如何

如果要将其加载到Excel中,请不要使用打开功能。而是创建一个新的空工作表并使用导入功能。这样您就可以将列指定为 Text 而不是 General