Ошибка чтения CSV: символ новой строки, отображаемый в некотируемом поле
Я создал python script, который работает с набором данных тестового CSV из 10 записей. Когда я масштабировал это до фактических наборов данных (несколько тысяч строк), я получаю следующую ошибку:
_csv.Error: символ новой строки, видимый в некотируемом поле - вам нужно открыть файл в режиме универсальной-новой строки?
Код выглядит следующим образом:
with open('./Origins.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
origincoords = ['{Y},{X}'.format(**row) for row in reader]
Полный код ошибки:
Traceback (most recent call last):
File "./Driving.py", line 14, in <module>
origincoords = ['{Y},{X}'.format(**row) for row in reader]
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/csv.py", line 103, in next
self.fieldnames
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/csv.py", line 90, in fieldnames
self._fieldnames = self.reader.next()
_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
Возможно, существует проблема масштаба с использованием метода чтения CSV, который я использую?
Ответы
Ответ 1
От PEP-0278:
В Python с универсальной поддержкой новой строки open() параметр режима также может быть "U", что означает "открыто для ввода в виде текстового файла с универсальным интерпретация новой строки". Режим "rU" также разрешен для симметрии с "Р.Б."
Итак, попробуйте изменить
with open('./Destinations.csv', 'r') as csvfile:
к
with open('./Destinations.csv', 'rb') as csvfile:
Если ошибка сохраняется, измените на
with open('./Destinations.csv', 'rU') as csvfile:
Отредактировано в ответ на комментарий Martijn Pieters.