2016-09-06 4 views
0

파일을 CSV로 변환하는 코드를 사용하는 데 문제가 있습니다. 나는 시작파이썬에서 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

나는 아직 파이썬에서 초보자이며 일부 도움을 많이 주시면 감사하겠습니다. 당신은이 부분을 고정하여 시작할 수 있습니다

감사

+0

\n은 개행인가? pandas는 확장자에 따라 적절한 파서를 선택할 것이고 하나는 보이지 않습니다 ... –

+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' 

,이 문제가 여기가 아니라 하나의 백 슬래시와 문자가 이스케이프 시퀀스를 표시 할 수 있기 때문에 일반적으로이 조심 , 예.

directory = 'C:\OI Data' 

대신과 같이 백 슬래시를 이스케이프 : 파일이`xls` 또는`xlsx` 파일

directory = 'C:\\OI Data' 
관련 문제