2011-08-30 9 views
6

Mam plik CSV z 5 kolumnami. Używając Pythona, jak mogę usunąć ostatnią kolumnę (nagłówek5 w przykładzie)? Czy istnieje prosty sposób, którego mi brakuje, czy też muszę przechodzić przez wszystkie wiersze w pliku CSV i usuwać każdą wartość z ostatniej kolumny (która może nadal zostawiać mnie z niepożądanym przecinkiem poprzedzającym)?Usuwanie lub usuwanie ostatniej kolumny w pliku CSV przy użyciu Pythona

Nie widzę niczego związanego z tym w module CSV ani gdzie indziej w interwebs, więc każda pomoc jest bardzo doceniana.

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

Odpowiedz

12

Użyj csv module. Pisząc na wiersz, należy row[:-1] aby odciąć ostatni element:

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

Nawet jeśli nie używasz modułu CSV, logiczny i rozsądny sposób to odczytać plik wiersz po wierszu, podzielić je przecinkami i wydrukuj elementy od 1 do 4 z join. np

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

Albo po prostu indeksowania prosty ciąg

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

To może uderzyć problemy jeżeli ostatnia kolumna danych dzieje się zawierać przecinek. Korzystanie z modułu CSV powinno obejść to. –

Powiązane problemy