Ошибка чтения 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.