0

BOF recordエラー メッセージの意味を簡単に調べる方法はありますか? それらを検索できるリストまたはそのようなものはありますか?

XLutils 1.6.0 に加えて、XLRD 0.9.2 をインストールしました。(私はそれがやり過ぎであることを知っているので、それが問題になる可能性がありますか?) 私は膨大な量の Excel ファイルを読んでいます。

テストを行ったにもかかわらず、エラーメッセージが表示されるようTryですExcept。エラーが表示されるコードは次のとおりです。

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

私のエラーメッセージは言う:

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 はコンピューターのユーザー名です。

4

1 に答える 1

0

try:、テストを追加しexcept:、問題の原因となったファイルを見つけました。残りのファイルと同じフォルダーに保存されていたが、隠されている古い「自動セ​​キュリティ保存ファイル」のように見えました。これらのファイルの名前は次のようになります。

~$test スプレッドシート modelxxx.xlsx

もちろん、以前にテストを実行する必要がありましたが、Try関数のインデントを左に置きすぎたため、エラーを保持しているファイルを確認できませんでした。返信ありがとうございます。

そのようなテーブルが存在する場合は、誰かがエラーメッセージのテーブルの方向性を教えてくれれば幸いです。

于 2013-08-13T08:50:05.617 に答える