2017-06-28 6 views
-3

私は特定のキーワードで始まらない行をcsvファイルから削除しますか?

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

以下のようなのtest.CSVファイルを持っており、ここで私は私の最終的な出力ファイルは、私がこれまで

si_a23,bcd 
si_b24,bcd 

する必要がありますのでSI_で始まらないすべての行を削除する必要がありますコードでこれを行いました -

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

関連する問題