1

我正在尝试使用 rec2csv 将 aa recarray 导出到 csv 文件,以便稍后使用 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: list index out of range),因为行之间有空行。

4

1 回答 1

1

我猜这是因为您没有以二进制模式打开文件。 rec2csv使用内置模块,它期望文件在 Windows 上csv以模式打开。'wb'

一个简单的解决方案是只传递文件名,而不是手动打开和关闭文件。

所以要么这样做:

mlab.rec2csv(r, 'J:\\export.csv')

或者做:

with open('J:\\export.csv', 'wb') as outfile:
    mlab.rec2csv(r, outfile)
于 2012-04-05T01:01:31.430 回答