私はPythonを使って解析しようとしているファイルのディレクトリを持っています。もしそれらがすべて同じ拡張であったとしても、何らかの理由でそれらが元の拡張の後に連続した数値拡張で作成されても問題はありません。例:foo.log foo.log.1 foo.log.2 bar.log bar.log.1 bar.log.2 etc.
foo.logはXML形式で、bar.logはXML形式ではありません。 foo.log.*
とfoo.log
ファイルだけを読み込んで解析するための最善のルートは何ですか? bar.log
ファイルを読む必要はありません。以下は、私のコードは次のとおりです。os.listdir(パス)のファイル拡張子ワイルドカードを使用
import os
from lxml import etree
path = 'C:/foo/bar//'
listing = os.listdir(path)
for files in listing:
if files.endswith('.log'):
print files
data = open(os.path.join(path, files), 'rb').read()
tree = etree.fromstring(data)
search = tree.findall('.//QueueEntry')
それはどんな.log.*
ファイルを読み取らないと、パーサーが読み込まれるファイルにチョークが、XML形式ではないので、これは動作しません。ありがとう!
OPがPOSIXシェルではなくWindowsの 'cmd'シェルでワイルドカードのように動作することを期待している場合、それは完全ではありません...しかし、彼のユースケースには十分であり、私はこれが正しい答えだと思います。 – abarnert
それは、ありがとう! –
'〜'を展開してくれなかったことに感謝しています - どういうわけか、Pythonはすべてのシステムコマンドをunixよりも悪化させます... – user3467349