У меня есть CSV-файл, полученный в неверном формате (у меня нет контроля над приложением, которое генерирует этот CSV)
заголовки CSV и первая строка выглядят следующим образом:
"Start Time"
"End Time"
"Service"
"255/06:06:54","255/06:54:42","S2 AVAIL"
Это код, который я использую для чтения CSV:
import csv
import os
import sys
rootPath = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))
inputFile = open(rootPath + '\\input\\' + sys.argv[1], 'rt')
sys.path.append(rootPath + '\\common')
for row in csv.reader(inputFile, dialect='excel'):
if row:
print(row)
Это вывод, который я получаю:
['"Start Time"']
['End Time']
['Service']
['255/06:06:54', '255/06:54:42', 'S2 AVAIL']
Первая проблема заключается в том, что странный символ (можетопция кодирования отсутствует?) также заголовок неправильный и не может использовать DictReader для этого формата, что для редактирования, которое я должен сделать с CSV, полезно.
Я мог бы переписать новый CSV с заголовком правильноотформатированный, это не проблема, но я не знаю, как пропустить первые 3 строки CSV !?Или я могу прочитать его в формате CSV?
Это вывод, который я хочу получить с помощью csv.reader:
['Start Time', 'End Time', 'Service']
['255/06:06:54', '255/06:54:42', 'S2 AVAIL']
или csv.DictReader:
OrderedDict([('Start Time', '255/06:06:54'), ('End Time', '255/06:54:42'), ('Service', 'S2 AVAIL')])