2015-08-18 12 views
0

嗨,我遇到了以下問題:寫作和排列讀出的內容爲CSV

我寫從列表/數組以下內容到一個CSV文件:

18 Aug 2015 12:00:08 AM CESTFrankfurtFRA:New Instruments available on XETRA - 1 
18 Aug 2015 12:00:07 AM CESTFrankfurtFRA:Deletion of Instruments from XETRA - 1 
18 Aug 2015 12:00:06 AM CESTFrankfurtFRA:New Instruments available on XETRA - 1 
18 Aug 2015 12:00:05 AM CESTFrankfurtDIVIDEND/INTEREST INFORMATION -- 4` 

用下面的函數

def _writeInCSV(text): 
    #print "Writing in CSV File" 
    with open('eggs.csv', 'wb') as csvfile: 
     #spamwriter = csv.writer(csvfile, delimiter='\t',quotechar='\n', quoting=csv.QUOTE_MINIMAL) 
     spamwriter = csv.writer(csvfile, delimiter='\t',quotechar="\n") 
     for n in range(len(text)): 
      spamwriter.writerow([text[n]]) 

現在我想從CSV文件中讀取內容到一個數組中,並且每個項目上總是顯示「[]」。因此,輸出如下所示:

["['18 Aug 2015 12:00:08 AM CESTFrankfurtFRA:New Instruments available on XETRA - 18.08.2015-002']", "['18 Aug 2015 12:00:07 AM CESTFrankfurtFRA:Deletion of Instruments from XETRA - 18.08.2015-001']"] 

用於讀取CSV我使用下面的代碼/ funtion:

def _readInCSV(your_list): 

    with open('eggs.csv', 'rb') as f: 
     reader = csv.reader(f) 
     for row in reader: 
      your_list.append(str(row)) 

的問題是,我試圖讓這些元素作爲字符串無「 []「開頭和結尾。

所以我想輸出是這樣的:

['18 Aug 2015 12:00:08 AM CESTFrankfurtFRA:New Instruments available on XETRA - 18.08.2015-002', '18 Aug 2015 12:00:07 AM CESTFrankfurtFRA:Deletion of Instruments from XETRA - 18.08.2015-001'] 

回答

0

它做你告訴它要什麼:輸出整行的字符串表示。一行是一個列表,一個列表總是包含列表分隔符。

你根本不想要那個。你有一個元素,它已經是一個字符串;您應該抓取該元素並追加它,而不要致電str

for row in reader: 
    your_list.append(row[0]) 

另外請注意,你原來的寫作功能是非pythonic。你永遠不應該遍歷len(range(something)):它的醜陋應該告訴你,這不是做事的方式。相反,只需遍歷該事物即可。

for item in text: 
    spamwriter.writerow([item]) 

最後,你可能會認爲,既然你正在編寫每行一個單一的元素,並回讀,CSV可能不是合適的格式。簡單的文本寫入和讀取會更容易。

+0

謝謝,現在完美的作品 – Nant

+0

不要忘記接受答案,如果它幫助你。 –