Пропустить заголовки при редактировании файла csv с помощью Python

Я использую приведенный ниже код для редактирования csv с использованием Python. Функции, вызываемые в форме кода, составляют верхнюю часть кода.

Проблема: я хочу, чтобы приведенный ниже код начал редактирование csv из второй строки, я хочу, чтобы он исключил первую строку, содержащую заголовки. Сейчас он применяет функции только к первой строке, и моя строка заголовка изменяется.

in_file = open("tmob_notcleaned.csv", "rb") reader = csv.reader(in_file) out_file = open("tmob_cleaned.csv", "wb") writer = csv.writer(out_file) row = 1 for row in reader: row[13] = handle_color(row[10])[1].replace(" - ","").strip() row[10] = handle_color(row[10])[0].replace("-","").replace("(","").replace(")","").strip() row[14] = handle_gb(row[10])[1].replace("-","").replace(" ","").replace("GB","").strip() row[10] = handle_gb(row[10])[0].strip() row[9] = handle_oem(row[10])[1].replace("Blackberry","RIM").replace("TMobile","T-Mobile").strip() row[15] = handle_addon(row[10])[1].strip() row[10] = handle_addon(row[10])[0].replace(" by","").replace("FREE","").strip() writer.writerow(row) in_file.close() out_file.close() 

Я попытался решить эту проблему, инициализируя переменную row до 1 но это не сработало.

Пожалуйста, помогите мне в решении этой проблемы.

3 Solutions collect form web for “Пропустить заголовки при редактировании файла csv с помощью Python”

Ваша reader переменная является итерируемой, перебирая ее, вы извлекаете строки.

Чтобы пропустить один элемент перед вашим циклом, просто вызовите next(reader, None) и проигнорируйте возвращаемое значение.

Вы также можете немного упростить свой код; используйте открытые файлы в качестве менеджеров контекстов, чтобы они автоматически закрывались:

 with open("tmob_notcleaned.csv", "rb") as infile, open("tmob_cleaned.csv", "wb") as outfile: reader = csv.reader(infile) next(reader, None) # skip the headers writer = csv.writer(outfile) for row in reader: # process each row writer.writerow(row) # no need to close, the files are closed automatically when you get to this point. 

Если вы хотите записать заголовок в выходной файл необработанным, это тоже легко, передайте вывод next() в writer.writerow() :

 headers = next(reader, None) # returns the headers or `None` if the input is empty if headers: writer.writerow(headers) 

Другим способом решения этого является использование класса DictReader, который «пропускает» строку заголовка и использует его для разрешенной именованной индексации.

Учитывая «foo.csv» следующим образом:

 FirstColumn,SecondColumn asdf,1234 qwer,5678 

Используйте DictReader следующим образом:

 import csv with open('foo.csv') as f: reader = csv.DictReader(f, delimiter=',') for row in reader: print(row['FirstColumn']) # Access by column header instead of column number print(row['SecondColumn']) 

Выполнение row=1 ничего не изменит, потому что вы просто перезапишите это с помощью результатов цикла.

Вы хотите сделать next(reader) чтобы пропустить одну строку.

  • Пакеты Anaconda
  • Как реализовать собственный контроль над многопроцессорной обработкой python.Pool?
  • Быстрая numpy roll_product
  • Как я могу использовать одну и ту же функцию обратного вызова для отслеживания нескольких переменных?
  • Запись файла данных с использованием чисел 1-10
  • написать csv файл с двойными кавычками для конкретного столбца, не работающего
  • Каков тип данных, возвращаемый dict.viewkeys ()?
  • Могу ли я показать десятичные знаки и научную нотацию на оси графика matplotlib с использованием Python 2.7?
  •  
    Interesting Posts for Van-Lav

    Django JavaScript translation не работает

    Настройка пользователя Django для тестирования носа

    Чтение unicodecsv из строки unicode не работает?

    Matplotlib colormap, участок рассеяния, передающий третью переменную для цвета: недопустимый аргумент RGBA

    Вытягивание HTML с веб-страницы в Java

    не может установить scipy-freezes на «Запуск setup.py install for scipy»

    Класс Python, определенный в том же файле, что и другой класс, – как вы получаете доступ к тому, который указан позже в файле?

    Добавление нового текста в Sklearn TFIDIF Vectorizer (Python)

    Производительность данных типов Python Numpy

    flake8 не собирает файл конфигурации

    Как установить / импортировать зависимости и выполнить файл Python в Bluemix

    Предотвращение множественных вызовов в понимании списка

    openshift: невозможно установить lxml для приложения python

    Дескрипторы как атрибуты экземпляра в python

    Можно ли свободно распространять распространяемый пакет Microsoft Visual C ++ 2008

    Python - лучший язык программирования в мире.