0
lxmlを使用して異なるフォルダから複数のXMLファイルを解析しようとしています。私はos.walk()とfnmatch.filter()を使用してxmlファイルを見つけます。たとえば、フォルダ名testlogから検索します。このフォルダにはさらにサブフォルダがあり、その中にはすべてresult.xmlのxmlファイルがあります。そして、これらのxmlファイルを解析して、 result.xml ごとにReportlabを使用してPDFを生成しようとしています。lxmlを使用して異なるフォルダ内の複数のxmlファイルを解析する
import os
from lxml import etree
import fnmatch
path = 'C:/Users/Name/Desktop/testlog'
for root, dirs, files in os.walk(path):
for files in fnmatch.filter(files, 'result.xml'):
# print files
tree = etree.parse(files)
と私は、ファイルを印刷する場合、私が記載されているすべてのresult.xmlファイルを取得することができますが、私は解析しようとしているならば、私は次のエラーを取得する:と解析のための私のコードがある
IOError: Error reading file 'result.xml' : failed to load external entity "result.xml"
これを解決する方法を教えてもらえますか?前もって感謝します。
私はそれらをうまく結合しましたが、私はこれを得ます: "ファイル" /usr/lib64/python2.7/posixpath.py "、行77、参加時 elifパス== ''またはパス.endswith( '/'): AttributeError: 'lxml.etree._Element'オブジェクトには属性 'endswith' "がありません。何か案は? –
あなたはこの質問の著者ではないようです。どのようなコードを実行していますか? –
'ディレクトリ= os.getcwd()ルートの 、dirsに、os.walk内のファイル(ディレクトリ):ファイル内のファイルの \t: \t場合(file.endswith() 'XML'): \t \t \t \t \t \t \t \t DOC = os.path.join(os.sep、根、ファイル) \t \t \t \t \t \t DOC = TXTとしてオープン( 'test.txtの'、 'A')とstr(doc) \t \t \tツリー= ET.parse(DOC) \t \t \tルート= tree.getroot() ' 私はドキュメントをプリントアウトした場合、それは完全なパスを示しているが、どこにも届きません。このコードは、プログラムがxmlファイルと同じフォルダにある場合にはうまく動作しますが、ディレクトリにある場合は失敗します。 –