2017-05-26 14 views
0

我是新來編碼,並嘗試過自己工作,無濟於事! 我從csv文件輸入行並將它們寫入文本文件。行有很多數據,但我只想要某些字段。我剛剛得到它寫我想要的領域,即參考編號12345,日期:20/5/17,事件類型:文本...從CSV文件讀取並打印到文本文件時無法獲得換行

問題是所有的行都捆綁在一起,沒有行它們之間。我非常希望二,三線分開即

  1. 參考編號12345,日期:20/5/17,事故類型:文字...

  2. 參考編號23117,日期:22/5/17,事件類型:文字...

  3. 參考編號23117,日期:22/5/17,事故類型:文字...

最後,我想能夠寫只有con保留特定的關鍵字,即事件類型或特定日期。目前,如果我可以在行之間換行以便讀起來,我會很高興。 我已經嘗試了一切。 「\ n」似乎只是在文本文件中打印,而不是創建新行。

這是我使用的代碼,它可能有點粗糙,但我已經通過試驗和錯誤得到了這一點。

import csv 
import os 

with open("raw.csv", "r") as f: 
    r = csv.reader(f) 
    for row in r: 
     r = [row for row in r] 
     r = [row[4] + "---" + row[1] + "---" + row[6] for row in r] 

with open("txtfile.txt", "w") as output: 
    output.write(str(r)+"\r\n") 
    print("Written successfully") 

回答

0

您必須在每行之後打印一個新行,而不是在整個字符串之後。開始於:

with open("raw.csv", "r") as f, open("txtfile.txt", "w") as output: 
    r = csv.reader(f) 
    for row in r: 
     output.write("{} --- {} --- {}\n".format(row[4], row[1], row[6])) 

並從那裏拿它。要進一步格式化您的文本文件,請查看str.format()。如果您打算在非此設計的應用程序中閱讀您的文本文件,則可能需要爲您的平臺使用'正確'行分隔符(大致上意味着\n適用於上述所有內容,而\r\n適用於Windows)世紀。您可以從os模塊獲取當前平臺的首選分隔符:os.linesep

+0

非常感謝您的支持:) – nodramas2011

+0

如果它有效,那麼您應該標記接受的答案。 –

相關問題