2013-11-03 138 views
1

因此,我創建了Python代碼,它可以擦除幾個不同的網站,然後用創建的列表做一些事情。我知道如何將一個列表變成一個字符串,然後如何從字符串中寫入一個csv文件。我的問題是,我可以在同一個csv文件中寫入多個字符串,並將每個字符串放在自己的行中,並使用唯一的頭文件?下面的代碼將把所有的數據放到csv文件中,但不是在它自己的行中。在Python中將多個字符串寫入CSV文件

str1 = "\n".join(data1) 
str2 = "\n".join(data2) 
str3 = "\n".join(matches) 
now = datetime.datetime.now() 
now_str = now.strftime("%Y-%m-%d-%H-%M") 
outfilename = 'data-{}.csv'.format(now_str) 
outpath = 'data/' 
outFile = open(outfilename, 'write') 
outFile.write(str1) 
outfile.write(str2) 
outfile.write(str3) 
outFile.close() 
+0

一個CSV文件是最好的格式嗎? –

+0

對於有人回答你的問題,他們需要知道'data1','data2'和'matches'是什麼,或者你現在得到了什麼輸出。 –

+0

謝謝@Paul。 data1和data2是二項式學名的列表。匹配是數據1和數據2共有的二項科學名稱列表。這是一個每日刮刮報告,我希望能夠每天存儲在一個csv文件中。 – PythonFisher

回答

2

簡單的回答你的問題是沒有,你可能不應該有多個部分,每個部分具有獨立的標題創建一個CSV文件。

沒有定義CSV文件格式的黃金標準,但RFC 4180可能會接近。因此,儘管技術上可以自由創建自己的擴展並將其稱爲CSV文件(例如,具有自己標題的多個獨立子文件,如您所建議的那樣),但這在CSV中非常罕見。如果您試圖閱讀這樣的文件,我預測它會給大多數軟件帶來不希望的結果。

如果數據集具有不同的模式,最佳做法是爲每個數據集創建一個CSV。

+0

非常感謝你。正如你可能已經直覺的那樣,我有點小事,但我正在學習。所以你說要繼續,每天爲每個抓取的數據集編寫一個單獨的csv?數據集都是相同的模式(如果我正在解釋模式)正確。他們都是二項式學名。 – PythonFisher

+0

當你說「獨一無二的標題」時,我認爲這意味着每個標題都是不同的。這意味着列名或類型或列數是不同的,因此它是不同的模式。 如果所有的數據確實共享相同的列標題,那麼繼續寫一個CSV文件,並在第一行粘貼一個標題。這將是一個構造良好的CSV文件。 祝你好運。如果我的回答符合您的要求,請在上面標記爲「已回答」。謝謝。 –

+0

謝謝,我很抱歉有任何混淆。我確實需要將數據集分成代表不同數據集的網站,因此我可以按照您的建議繼續前進,並將每個數據集都設置爲自己的csv文件。 – PythonFisher

相關問題