在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,'exec'),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'