2013-08-12 36 views
0

有沒有簡單的方法來找出BOF record錯誤信息的含義? 一個列表或類似的東西,他們可以擡頭?XLRDError:期望BOF記錄' x03OPC'

我剛剛安裝了XLRD 0.9.2,除了XLutils 1.6.0。 (我知道這是一種矯枉過正的行爲,所以這可能是問題所在)我正在閱讀大量的Excel文件,我知道所有文件都是excelfiles,至少在文件名中。

即使我已經提出了TryExcept測試,errormessage似乎顯示。下面的代碼在錯誤顯示:

def locate_vals(): 
    val_dict = {} 
    Fcount = 0 
    for filename in file_list: 
     try: 
      wb = xlrd.open_workbook(os.path.join(start_dir, filename)) 
      sheet = wb.sheet_by_index(5) # kan ogsaa velge sheet_by_name('navn') 
#    model = sheet.cell_value(2, 3) 
      lenghtvalue = sheet.cell_value(9, 7)  # (y,x) 
      dispvalue = sheet.cell_value(15, 7) 
      try: 
       Froudemax = max(Fdict.get(filename)[Fcount - 1], key=str) 
       Froudemin = min(Fdict.get(filename)[Fcount - 1]) 
       Fcount += 1 
      except: 
       Froudemax = 5555555555555555555555555555 
       Froudemin = 6666666666666666666666666666 
       print 'Froudemax(5) eller Froudemin(6) har problem' 
      val_dict[filename] = [lenghtvalue, dispvalue, Froudemax, Froudemin] 

     except XLRDError and IndexError: 
      print 'Problem in locate_vals with:', filename 
    return val_dict 
val_dict = locate_vals() 

我errormessage的說:

Traceback (most recent call last): 
    File "C:\Documents and Settings\OPC\My Documents\Haavard_Refvik_Workspace\STT_ComparisonTool\Run_Comparison_Tool.py", line 129, in <module> 
    val_dict = locate_vals() 
    File "C:\Documents and Settings\OPC\My Documents\Haavard_Refvik_Workspace\STT_ComparisonTool\Run_Comparison_Tool.py", line 111, in locate_vals 
    wb = xlrd.open_workbook(os.path.join(start_dir, filename)) 
    File "C:\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg\xlrd\__init__.py", line 435, in open_workbook 
    ragged_rows=ragged_rows, 
    File "C:\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg\xlrd\book.py", line 91, in open_workbook_xls 
    biff_version = bk.getbof(XL_WORKBOOK_GLOBALS) 
    File "C:\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg\xlrd\book.py", line 1258, in getbof 
    bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8]) 
    File "C:\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg\xlrd\book.py", line 1252, in bof_error 
    raise XLRDError('Unsupported format, or corrupt file: ' + msg) 
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '\x03OPC ' 

編輯:OPC是計算機上的用戶名。

+1

這意味着'xlrd'庫期待一個特定的字節序列並且未能找到它,這意味着輸入文件不像預期的那樣運行。 –

+0

謝謝!我會看看這個文件,並試圖確定什麼是錯的。你知道我在哪裏可以查看這些信息,還是他們都是通過經驗學到的? – Havard

+0

需要什麼文件的一部分?這是我辦公室的文件,所以恐怕我不能在網上發佈任何整個文件。 – Havard

回答

0

增加了一個try:,except:測試,並找到導致問題的文件。看起來像是一些舊的「自動安全保存文件」,它們與我的其他文件保存在同一個文件夾中,但在隱藏的位置。這些文件的名稱是這樣的:

~$test spreadsheet modelxxx.xlsx

我當然應該已經跑測試較早,但我已經把Try功能的縮進太遠離開,所以我從來沒有看到持有的文件錯誤。感謝您的迴應。

如果有人能指出我的錯誤消息表的方向,但如果存在這樣的表,我仍然會很感激。

相關問題