2016-09-06 13 views
0

ファイルをcsvに変換するコードを使用しようとする際に問題が発生しています。 私はスタートPythonでcsvで想定されるExcelファイルを変換する

directory = 'C:\OI Data' 

filename = 'OpenInterest08-24-16' 

data_xls = pd.read_excel(os.path.join(directory,filename), 'Sheet1', index_col=None) 
    data_xls.to_csv(os.path.join(directory,filename +'.csv'), encoding='utf-8') 

として、以下のコードを使用していますし、私は次のエラーを取得しています:

Traceback (most recent call last):

File "", line 1, in

File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile execfile(filename, namespace)

File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 74, in execfile exec(compile(scripttext, filename, 'exec'), glob, loc)

File "C:/Users/Public/Documents/Python Scripts/work.py", line 26, in data_xls = pd.read_excel(os.path.join(directory,filename), 'Sheet1', index_col=None)

File "C:\Anaconda2\lib\site-packages\pandas\io\excel.py", line 170, in read_excel io = ExcelFile(io, engine=engine)

File "C:\Anaconda2\lib\site-packages\pandas\io\excel.py", line 227, in init self.book = xlrd.open_workbook(io)

File "C:\Anaconda2\lib\site-packages\xlrd__init__.py", line 441, in open_workbook ragged_rows=ragged_rows,

File "C:\Anaconda2\lib\site-packages\xlrd\book.py", line 91, in open_workbook_xls biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)

File "C:\Anaconda2\lib\site-packages\xlrd\book.py", line 1230, in getbof bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8])

File "C:\Anaconda2\lib\site-packages\xlrd\book.py", line 1224, in bof_error raise XLRDError('Unsupported format, or corrupt file: ' + msg) xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '\n\n\n\n\n '

私は https://www.theice.com/marketdata/reports/icefuturesus/PreliminaryOpenInterest.shtml?futuresExcel=&tradeDate=8%2F24%2F16

を使用していたファイル形式を把握するのに苦労していますファイルを自分で開くと次のようになります enter image description here

私はまだPythonの初心者であり、助けていただければ幸いです。あなたはこの部分を固定することにより開始することができます

おかげ

+0

あなたのファイルは、 'xls'または' xlsx'ファイルですか? pandasは、拡張子に応じて適切なパーサを選択し、1つのようには見えません... –

+0

これは問題です: 'data_xls.to_csv(os.path.join(directory、filename、 '。csv')、encoding = 'utf-8') '... – bernie

+0

代わりに、' data_xls.to_csv(os.path.join(directory、filename + '。csv')、encoding = 'utf-8') ' – bernie

答えて

1

あなたはそれがあるんとどう
data_xls.to_csv(os.path.join(directory,filename,'.csv'), encoding='utf-8') 

あなたが望むものではありません
'C:\OI Data\\OpenInterest08-24-16\\.csv' 

。代わりに行います。

あなたを与えるだろう
os.path.join(directory,filename+'.csv') 

'C:\OI Data\\OpenInterest08-24-16.csv' 

はまた、これはここでの問題ではなく、単一のバックスラッシュ文字はエスケープシーケンスを示すことができますので、一般的にはこれに注意してください、例えば\nは改行です:

directory = 'C:\OI Data' 

は、代わりにそのようにバックスラッシュをエスケープ:

directory = 'C:\\OI Data' 
関連する問題