1

globを使用して多数のファイルを開き、一連の関数を介してそれらをフィードしようとしています。私のファイルのいくつかはgzip圧縮されており、いくつかはbz2であり、いくつかはプレーンテキストです。私は通常fileinputを使用しましたが、圧縮ファイルを取り込むための構文を理解できません。このPythonFileinputDocに基づくと、次のようになります。

openhook=fileinput.hook_compressed

私のコードは次のようになります:

import fileinput
import glob

filestobeanalyzed = glob.glob('./files/*')

for fileName in filestobeanalyzed:
    inputfilename = fileName
    for line in fileinput.input([inputfilename, openhook=fileinput.hook_compressed]):
        #do stuff

=記号のfileinput行に無効な構文があります。

助言がありますか?

4

1 に答える 1

2

あなたが欲しい

for line in fileinput.input(inputfilename, openhook=fileinput.hook_compressed):
    #do stuff

(角かっこを削除しました)。リストコンストラクターで割り当てを行おうとしていました。例えば

my_list=["foo",bar="baz"]  #this doesn't work (SyntaxError)

おそらく、関数へのオプションの引数を使用[して示すPythonドキュメントからアイデアを得たでしょう。]

これは余談です。トレースバックには、エラーの種類や行番号だけでなく、問題を特定するのに役立つ情報が多く含まれていることがよくあります。(読んでください:あなたがトレースバックを持っているとき、私たちがそれを見ることができるように全部を貼り付ければそれは一般的にありがたいです)

于 2012-06-04T20:54:45.877 に答える