Экспорт rec2csv с пустой строкой между строками
Я пытаюсь экспортировать recarray в csv-файл с помощью rec2csv, чтобы я мог получить его позже с помощью csv2rec. Проблема в том, что rec2csv экспортируется с пустой строкой между каждой строкой, поэтому csv2rec не может прочитать его позже. Как я могу исправить эту проблему с помощью функции rec2csv?
По сути, я пытаюсь сделать следующее:
ticker = 'GOOG'
startdate = datetime.date(2011,1,1)
enddate = datetime.date.today()
fh = finance.fetch_historical_yahoo(ticker, startdate, enddate)
r = mlab.csv2rec(fh); fh.close()
r.sort()
После некоторых расчетов
fl = open(r'J:\export.csv', 'w')
mlab.rec2csv(r,fl); fl.close()
Затем я хочу иметь возможность импортировать этот файл снова с:
ff = mlab.csv2rec('J:\\export.csv')
Это выдает сообщение об ошибке (IndexError: список индексов вне диапазона), потому что между строками есть пустые строки.
1 ответ
Я предполагаю, что это потому, что вы не открываете файл в двоичном режиме. rec2csv
использует встроенный csv
модуль, который ожидает, что файл будет открыт в 'wb'
режим в Windows.
Простое решение - просто передать имя файла, а не открывать и закрывать файл вручную.
Так что либо делайте:
mlab.rec2csv(r, 'J:\\export.csv')
или сделать:
with open('J:\\export.csv', 'wb') as outfile:
mlab.rec2csv(r, outfile)