2016-09-05 6 views
0

私はxlrd 0.9.4を使用しています。私が開く必要があるファイルが有効であることを確認したいと思います。xlrd - ファイルを開く際の問題

try: 
    book = xlrd.open_workbook(file_path) 
    print "Done" 
except XLRDError: 
    print "Wrong type of file." 

FILE_PATHは私のファイルのパスは次のとおりです。

は、これを行うために、私はこのコードin according with this questionを書きました。

これは正常に動作しますが、問題は次のとおりです。まず、有効な.xlsファイルがあるので、スクリプトはを実行します。を実行します。ここで、有効な.xlsファイルの名前が変更され(たとえば、拡張子)、test.xlsからtest.txtに変更されたとします。

私はスクリプトを実行すると、私は同じ結果(完了)を持っています。

代わりに、 "real" .txtファイル(空文字またはテキスト)を使用すると、スクリプトはという形式のファイルを印刷します。

この現象は、ファイルの「構造」が変更されていないために発生しますか?私は何か間違っているのですか?ブランチ以外のに追加できる別のタイプの例外がありますか?事前

+0

拡張子をテストするには、file_path.endswith( "。xls")またはfile_path.endswith( "。xlsx"): 'を使用できます。 – Andrew

+0

「有効」とはどういう意味ですか? –

+4

この動作の正確さは、どのように期待するのでしょうか?私には完全な意味があります。ファイルの名前/拡張子は、その内容とは何も関係ありません。実際には、入力は 'StringIO'オブジェクトでもありますので、物理的なファイル名はありません...あなたが有効なワークブックとしてデータを処理できるかどうかをライブラリに尋ねています。 –

答えて

2

ありがとうございます読み取る前にファイルをチェックxlrdする方法を見ることができます。 xldr sourceでは18-19行目に«magic»バイトが定義されています。このバイトシーケンスと85行目で比較されたファイルの最初のバイト。等しくない例外が発生する場合。ファイル拡張は関係しません。

異なるファイルタイプのシグネチャは、thereです。

+0

ありがとう! – Giordano

関連する問題