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中,請不要使用打開功能。請改爲創建一個新的空白工作表,然後使用導入功能。這將讓你指定一個列爲文本而不是通用。
您發佈的代碼的輸出已經是您所期望的。你用什麼工具打開CSV文件? – 2015-04-01 10:38:48
我得到的輸出爲676L Z60 33U 3 :( – 2015-04-01 10:41:46
但是這不是* * * * * * Python寫入'0003'。 – 2015-04-01 10:42:30