2017-06-28 81 views
-3

我有一個像下面從csv文件中刪除不以特定關鍵字開頭的行嗎?

aa123,abc 
ab123,bcd 
si_a23,bcd 
da123,abc 
si_b24,bcd 

在這裏,我需要刪除不SI_開頭的所有行test.csv文件,所以我最終輸出文件應該是

si_a23,bcd 
si_b24,bcd 

到目前爲止,我這是代碼 -

f = open("test.csv","r") 
    lines = f.readlines() 
    f.close() 
    f = open("test.csv","w") 
    for line in lines: 
    if line.startswith ("si_"): 
     f.write(line) 
    f.close() 

我得到一個空白文件的輸出。我在這裏做錯了什麼。

+2

讀取行,檢查第一列,寫出匹配的行。你有哪些麻煩?到目前爲止顯示你的代碼,有人可以幫你修復它。這是這個網站的工作原理。 – alexis

回答

0

我試了下面的代碼(由你發佈),它的作品很好,你的例子。

f = open("test.csv","r") 
lines = f.readlines() 
f.close() 

f = open("test.csv","w") 
for line in lines: 
    if line.startswith ("si_"): 
     f.write(line) 
f.close() 

但我可以建議你使用一些調試代碼,例如:

  • 打印(線)
  • 打印(線)

也許還寫入新文件而你正在嘗試(不覆蓋)。

+0

你說得對,其實這是我的錯。在我使用的測試數據中有si-而不是si_,因爲所有記錄都被刪除。感謝您的確認。 – Sangs

相關問題