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
怎么做。
答案 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 。