2016-10-05 3 views
0

Я довольно новичок в python, и у меня возникли проблемы с удалением столбцов заголовка после 25-го столбца. Есть еще восемь столбцов, у которых нет данных, поэтому я пытаюсь удалить эти столбцы. Столбцы 1-25 имеют как 50 000 тыс. Данных, а остальные столбцы пустые. Как я могу это сделать? Мой код теперь способен очистить файл, но я не могу удалить заголовки для строки [0] ПОСЛЕ COLUMN 25.
БлагодаряУдалить пустые столбцы из строки заголовка

import csv 

my_file_name = "NVG.txt" 
cleaned_file = "cleanNVG.csv" 
remove_words = ['INAC-EIM','-INAC','TO-INAC','TO_INAC','SHIP_TO-inac','SHIP_TOINAC'] 


with open(my_file_name, 'r', newline='') as infile, open(cleaned_file, 'w',newline='') as outfile: 
    writer = csv.writer(outfile) 
    cr = csv.reader(infile, delimiter='|') 
    writer.writerow(next(cr)) #I think this is why is not working 
    for line in (r[0:25] for r in cr): 
     #del line [26:32] 
     if not any(remove_word in element for element in line for remove_word in remove_words): 
     line[11]= line[11][:5] 
     writer.writerow(line) 

ответ

1

Вы нашли строку с проблемой - все, что вам нужно do - только печатать заголовки, которые вы хотите. next(cr) читает строку заголовка, но вы передаете всю строку до writer.writerow().

Вместо

writer.writerow(next(cr)) 

вы хотите:

writer.writerow(next(cr)[:25]) 

([:25] и [0:25] одинаковы в Python)

+0

Wow У меня было это раньше, и он бросил ошибку, и это было причиной у одной из линий была ошибка с отступом, поэтому я подумал, что это что-то еще. Благодаря!! Это сработало :) – Cesar

Смежные вопросы