1

後でcsv2recで取得できるように、rec2csvでaa recarrayをcsvファイルにエクスポートしようとしています。問題は、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 に答える