2014-03-31 68 views
0

如何阻止Python自動將對象寫入csv中,使其與原本的格式不同?例如,我有列表對象,如下列:使用csv寫入器python模塊時自動重新格式化

row = ['APR16', '100.00000'] 

我想盡可能的是寫這行的,但是當我使用CSV作家writerow功能,其寫入到CSV文件作爲4月16日,只是10.我想保留原始格式。

編輯:

下面是代碼:

import pandas as pd 

dates = ['APR16', 'MAY16', 'JUN16'] 
numbers = [100.00000, 200.00000, 300.00000] 

for i in range(3): 
    row = [] 
    row.append(dates[i]) 
    row.append(numbers[i]) 
    prow = pd.DataFrame(row) 
    prow.to_csv('test.csv', index=False, header=False) 

而且結果:

Result

+1

你怎麼知道這是Python的多數民衆贊成這樣做,而不是,無論你讀它變成是這樣解釋呢? – DSM

+0

所以你說Excel是把對象改成日期格式等等?如何改變設置,然後在寫入數據時自動重新格式化數據? – KidSudi

+0

如果你想讓他們內聯看到:[this](http://pandas.pydata.org/pandas-docs/dev/dsintro.html#from-structured-or-record-array) 'pd.DataFrame ([(日期[我],數字[我])])' –

回答

0

使用pandas

import pandas as pd 

dates = ['APR16', 'MAY16', 'JUN16'] 
numbers = [100.00000, 200.00000, 300.00000] 

data = zip(dates,numbers) 

fd = pd.DataFrame(data) 

fd.to_csv('test.csv', index=False, header=False) # csv-file 
fd.to_excel("test.xls", header=False,index=False) # or xls-file 

結果在我的終端:

➜ ~ cat test.csv 
APR16 
100.00000 

結果中的LibreOffice:

enter image description here

+0

我有多行,每一行都在for循環中聲明。有了這段代碼,它似乎不斷重寫文件。 – KidSudi

+0

發表一段代碼以使您的觀點更清晰。我不明白爲什麼上面的解決方案不應該爲多行做 – Tengis

+0

好吧,無論哪種方式,它仍然將APR16轉換爲Excel中查看它的日期,這是與上述解釋方式相關的問題 – KidSudi