通过Pandas的XLRD错误

2024-10-01 09:21:36 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图pd.read_excel软件(). 此错误特定于我的计算机:当我在另一台具有相同文件的计算机上运行脚本时,不会发生任何错误。python3.6.1的Python分布。熊猫版本'0.20.3',Xlrd版本'1.1.0'

XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\x08jstanle'Jstanley是我的计算机名,所以这可能是我丢失的一个重要提示。在

它试图打开.xls或.xlsx文件。我尝试过在不做任何更改的情况下将扩展名更改为旧版本和新版本的Excel。在

谢谢你的帮助!我将把全部错误写在下面。在

C:\Users\jstanley\Documents\----\---\Python\load_data_original.py in load_(exp_id, file_path)
     60 
     61 def load_(exp_id, file_path):
---> 62     dict_sheets = pd.read_excel(file_path, header=None, sheetname=None)
     63     new_dict_sheets = dict()
     64     

C:\Users\jstanley\Anaconda3\lib\site-packages\pandas\io\excel.py in read_excel(io, sheetname, header, skiprows, skip_footer, index_col, names, parse_cols, parse_dates, date_parser, na_values, thousands, convert_float, has_index_names, converters, dtype, true_values, false_values, engine, squeeze, **kwds)
    201 
    202     if not isinstance(io, ExcelFile):
--> 203         io = ExcelFile(io, engine=engine)
    204 
    205     return io._parse_excel(

C:\Users\jstanley\Anaconda3\lib\site-packages\pandas\io\excel.py in __init__(self, io, **kwds)
    258             self.book = xlrd.open_workbook(file_contents=data)
    259         elif isinstance(io, compat.string_types):
--> 260             self.book = xlrd.open_workbook(io)
    261         else:
    262             raise ValueError('Must explicitly set engine if not passing in'

C:\Users\jstanley\Anaconda3\lib\site-packages\xlrd\__init__.py in open_workbook(filename, logfile, verbosity, use_mmap, file_contents, encoding_override, formatting_info, on_demand, ragged_rows)

C:\Users\jstanley\Anaconda3\lib\site-packages\xlrd\book.py in open_workbook_xls(filename, logfile, verbosity, use_mmap, file_contents, encoding_override, formatting_info, on_demand, ragged_rows)
     89         t1 = time.clock()
     90         bk.load_time_stage_1 = t1 - t0
---> 91         biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)
     92         if not biff_version:
     93             raise XLRDError("Can't determine file's BIFF version")

C:\Users\jstanley\Anaconda3\lib\site-packages\xlrd\book.py in getbof(self, rqd_stream)
   1228             elif rc == XL_NAME:
   1229                 self.handle_name(data)
-> 1230             elif rc == XL_PALETTE:
   1231                 self.handle_palette(data)
   1232             elif rc == XL_STYLE:

C:\Users\jstanley\Anaconda3\lib\site-packages\xlrd\book.py in bof_error(msg)
   1222             elif rc == XL_SHEETSOFFSET:
   1223                 self.handle_sheetsoffset(data)
-> 1224             elif rc == XL_SHEETHDR:
   1225                 self.handle_sheethdr(data)
   1226             elif rc == XL_SUPBOOK:

Tags: inpyioselfdatalibpackagessite
1条回答
网友
1楼 · 发布于 2024-10-01 09:21:36

一些excel文件和XLRD似乎有问题,而且通常很难分辨出你面对的是哪一个。文件是你下载的吗?或者是一份旧文件?腐败以看似随机的方式潜入Excel文件。在

This question might help。{看看其他的想法。在

最好的解决方案似乎是在Excel中打开文件,然后将其另存为另一种格式(有时甚至只是作为一个新的.xlsx文件)。手工的,不雅的,烦人的。但我已经做了好几次了,而且成功了。在

相关问题 更多 >