问题与Excel文件。 XLRDError:不支持的格式或损坏的文件:这是什么types的文件?

我有一个与xls文件一起工作的代码。 除了这个文件之外,它适用于我所抛出的一切,我不知道如何正确识别这个文件是什么。 我从我正在使用Selenium浏览的网站上下载文件。 这个特定的电子表格总是以导致此错误的文件types下载。

完整的错误是:

Traceback (most recent call last): File "/Users/Meir/Documents/PYTHON/IFG User Update/code/ifg_TPA_update_excel.py", line 44, in <module> rb = open_workbook((os.path.expanduser("~/Documents/PYTHON/Selenium test/TPA_Example.xls")),formatting_info=True) File "/usr/local/lib/python2.7/site-packages/xlrd/__init__.py", line 443, in open_workbook ragged_rows=ragged_rows, File "/usr/local/lib/python2.7/site-packages/xlrd/book.py", line 94, in open_workbook_xls biff_version = bk.getbof(XL_WORKBOOK_GLOBALS) File "/usr/local/lib/python2.7/site-packages/xlrd/book.py", line 1262, in getbof bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8]) File "/usr/local/lib/python2.7/site-packages/xlrd/book.py", line 1256, in bof_error raise XLRDError('Unsupported format, or corrupt file: ' + msg) XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '\xff\xfe<\x00S\x00T\x00' 

我试图打开的文件在我的查找器中显示为xls文件。 但是,当我打开它时,它不打开文件名作为标题,而是显示“Workbook1”。 当我点击保存时,它会打开保存菜单,就像我点击保存为,默认为“Workbook1.xlsx”。 我试图改变我的代码打开它作为一个xlsx文件,但它错误地说,它无法find该文件。 每当我尝试使用Googlesearch时,我都不知道如何使用它来获取相关答案。

当我联系网站支持团队询问TPA工作表是什么types的文件时,他们回答:

TPA批量生产是一个比其他批量生产更旧的版本,它将在今年晚些时候重build。 下载文件时,最好的方法是另存为并将其保存为旧版本的.xls,我通常selectMicrosoft Excel 5.0 / 95工作簿,并将其格式化为文本格式。 格式化,它应该上传没有问题。

任何想法,我怎么能从Python中打开这个权利?

目前,我正在将每个部分构build为一个单独的代码,并且一旦把它们整理出来,我就将它们结合在一起。 下面是将要打开文件的代码部分,并且遇到错误。

我的代码:

 #!/usr/bin/env python ## Import OS and Modules import os import csv import xlrd import xlwt import xlutils import csv import collections ## Define Input File from IFG ifg_user_file = "New_PCs_to_set_up_in_marketing_database_-_4-11-2013.csv" ## Import data data = [row for row in csv.reader(open (os.path.expanduser("~/Downloads/" + ifg_user_file),'U'))] ## Find number of rows row_count = sum(1 for row in data) print row_count ## Set to turn off when reaching the end of data end_of_data = False from xlutils.copy import copy # http://pypi.python.org/pypi/xlutils from xlrd import open_workbook # http://pypi.python.org/pypi/xlrd from xlwt import easyxf # http://pypi.python.org/pypi/xlwt ################################################################################## ## THE ERROR OCCURS AT THE LINE BELOW rb = open_workbook((os.path.expanduser("~/Documents/PYTHON/Selenium test/TPA_Example.xls")),formatting_info=True) r_sheet = rb.sheet_by_index(0) # read only copy to introspect the file 

编辑:我试图打开它与编解码器,而不是打开诊断

 rb=codecs.open((os.path.expanduser("~/Documents/PYTHON/Selenium test/TPA_Example.xls")), 'r', encoding='utf16'); print rb; print rb.readline(); print rb.read(20); 

它打印出以下结果:

 <open file '/Users/Meir/Documents/PYTHON/Selenium test/TPA_Example.xls', mode 'rb' at 0x110fe51e0> <STYLE> .excel { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px so 

看起来这是一个excel文件。 不知道如何继续。 有没有一个通用的打开excel文档命令?