2011-08-30 7 views
6

5列のCSVファイルがあります。 Pythonを使用して、最後の列(この例ではheader5)を削除するにはどうすればよいですか?私が行方不明の簡単な方法はありますか、またはCSV内のすべての行をループして、最後の列から各値を削除する必要がありますか(不要な先行するカンマが残っている可能性があります)Pythonを使用してCSVファイルの最後の列を削除または削除

私はCSVモジュールや他のインターウェブ上でこれに関連するものは見ていないので、どんな助けでも大歓迎です。

header1,header2,header3,header4,header5 
value1,value2,value3,value4,value5 
value1,value2,value3,value4,value5 

答えて

12

csv moduleを使用してください。行を書き出すときに、最後の項目を切り落とすためにrow[:-1]を使用します。

import csv 

with open(filename,"r") as fin: 
    with open(outname,"w") as fout: 
     writer=csv.writer(fout) 
     for row in csv.reader(fin): 
      writer.writerow(row[:-1]) 
1

あなたはCSVモジュールを使用しない場合でも、論理的かつ健全な方法は、行によって、ファイルの行を読み取ることで、カンマでそれらを分割joinで項目1〜4を印刷します。単純な文字列によって例えば

for line in open("file"): 
    print ','.join(line.split(",")[:-1]) 

それとも、データの最後の列にカンマが含まれているために発生した場合、これは問題を打つこと

for line in open("file"): 
    print line[ : line.rindex(",") ] 
+3

のインデックスを作成します。 CSVモジュールを使用すると、これを回避する必要があります。 –

関連する問題