在python中的csv转换一个假设的excel文件

我有一个问题,试图使用代码转换成CSV文件。 我使用下面的代码作为开始

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

我得到以下错误:

回溯(最近一次通话最后):

文件“”,第1行,

运行文件execfile(filename,namespace)中的文件“C:\ Anaconda2 \ lib \ site-packages \ spyderlib \ widgets \ externalshell \ sitecustomize.py”,第714行,

文件“C:\ Anaconda2 \ lib \ site-packages \ spyderlib \ widgets \ externalshell \ sitecustomize.py”,第74行,在execfile exec(compile(scripttext,filename,'e​​xec'),glob,loc)

在data_xls = pd.read_excel(os.path.join(directory,filename)'Sheet1',index_col = None)文件“C:/ Users / Public / Documents / Python Scripts / work.py”

文件“C:\ Anaconda2 \ lib \ site-packages \ pandas \ io \ excel.py”,第170行,在read_excel io = ExcelFile(io,engine = engine)

init目录下的文件“C:\ Anaconda2 \ lib \ site-packages \ pandas \ io \ excel.py”,行227,self.book = xlrd.open_workbook(io)

在open_workbook中的文件“C:\ Anaconda2 \ lib \ site-packages \ xlrd__init __。py”,第441行ragged_rows = ragged_rows,

在open_workbook_xls文件“C:\ Anaconda2 \ lib \ site-packages \ xlrd \ book.py”中,第91行biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)

在getbof bof_error('Expected BOF record; found%r'%self.mem [savpos:savpos + 8])文件“C:\ Anaconda2 \ lib \ site-packages \ xlrd \ book.py”

文件“C:\ Anaconda2 \ lib \ site-packages \ xlrd \ book.py”,第1224行,在bof_error中raise XLRDError('Unsupported format,or corrupt file:'+ msg)xlrd.biffh.XLRDError:Unsupported format,损坏的文件:期望的BOFlogging; 发现'\ n \ n \ n \ n \ n'

我正在努力弄清楚我使用的文件格式https://www.theice.com/marketdata/reports/icefuturesus/PreliminaryOpenInterest.shtml?futuresExcel=&tradeDate=8%2F24%2F16

打开文件自己我得到下面的input图像说明在这里

我仍然是一个初学者在python和一些帮助将不胜感激。

谢谢

您可以从修复这部分开始:

 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'