lxml.etree.iterparse()
を使用して、大きなXMLファイルを反復処理しています。Pythonでlxmlを使ってXMLを反復する:入力ファイルの読み込み量を知る方法?
入力ファイルの構文解析にどれだけの時間がかかるかを知りたいので、進捗インジケータが表示されることがあります。
私の最初のアイデアは、os.stat(filename).st_size
を使用してXMLファイルの大きさを知ってから、パーサからイベントを取得するときにファイル内の現在の位置を取得することでした。しかし、私はどのようにlxml.etree
が私の内部位置にアクセスできるかを理解できません。 iterparse()
はファイル名をsource
引数としているので、自分自身でファイルを開き、それまでに読み取ったバイト数を知るためにtell()
メソッドを呼び出すことはできません。
現在のパーサーの進行状況を示すlxml.etree
ビルトインインジケータがありますか?あるいは、あなたはそのような進歩を統合する考えを持っていますか?
ああ素敵なようなものが得られます!ドキュメンテーションは 'source'引数の型を指定しておらず、例ではファイル名のみを使用しています。 –