読み取り、単一のCSVファイルにフォーマットする必要がある一連のXMLファイルがあります。XMLファイルから読み取るために、ここで説明したソリューションを使用しました。
私のコードは次のようになります:
from os import listdir
import xml.etree.cElementTree as et
files = listdir(".../blogs/")
for i in range(len(files)):
# fname = ".../blogs/" + files[i]
f = open(".../blogs/" + files[i], 'r')
contents = f.read()
tree=et.fromstring(contents)
for el in tree.findall('post'):
post = el.text
f.close()
cElementTree.ParseError: undefined entity:
これにより、行でエラーが発生しますtree=et.fromstring(contents)
。奇妙なことに、コマンドラインPythonで各コマンドを実行すると(ただし、forループはありません)、完全に実行されます。
XML構造を知りたい場合は、次のようになります。
<Blog>
<date> some date </date>
<post> some blog post </post>
</Blog>
では、このエラーの原因は何ですか?また、Pythonファイルからは実行されず、コマンドラインから実行されるのはなぜですか?
更新:このリンクfiles[0]
を読んだ後、「&」記号が数回出現することを確認しました。それが問題の原因かもしれないと思います。コマンドラインで同じコマンドを実行したときに、ランダムファイルを使用して読み取りました。