2016-01-28 80 views
2

我在測試代碼時遇到了一些麻煩。此代碼是爲了:列表之間不需要的空行

  • 讀取csv文件
  • 採取兩個輸入
  • 把輸入列表中的
  • 使一個新的列表與CSV內容+輸入列表
  • 用新列表覆蓋csv。

    import csv 
    
    input1 = input("input 1") 
    input2 = input("input 2") 
    
    original = [] 
    with open('test.csv', 'r') as f: 
        reader = csv.reader(f) 
        original = list(reader) 
    
    data = [input1,input2] 
    original.append(data) 
    
    with open('test.csv', 'w') as f: 
        writer = csv.writer(f) 
        writer.writerows(original) 
    

例如,如果「貓」和「狗」是在該文件中,我在「斑馬」和「長頸鹿」類型的,我期望的CSV到這個樣子,當我在記事本中打開它: link

但是,當我多次運行代碼時,在列表之間會產生空白行,我不知道爲什麼。 link

我是新來的Python和任何幫助表示讚賞。

+0

你可以嘗試rstrip你的輸入嗎?例如,data = [input1.rstrip(),input2.rstrip()] – user1157751

+0

@ user1157751沒有任何變化 –

回答

1

解決的辦法是:

open('test.csv', 'w', newline='') 

在Python csv.Writer的新版本現在可以處理換行符,但open也做。然後,您必須告訴open寫入文件時不得添加換行符。有關更多解釋,請參閱API documentation

+0

謝謝,我認爲這將是這樣簡單的事情。 –

+0

@Gabriel Owens,不客氣,如果是解決方案,您可以接受 – jlandercy

+0

您使用的是什麼版本的Python?當我嘗試這樣做時,我得到了'TypeError:'newline'是這個函數的無效關鍵字參數。 – train1855

相關問題