-2
私はtxtファイルからいくつかの情報を抽出しようとしていますが、分割後、私はリストの最初の位置にしかアクセスできません。 誰もが理想を持っていますか?私のリストの位置にアクセスすることができません
マイtxtファイルは次のようである:
<?xml version='1.0' encoding='UTF-8'?>
<osm version="0.6" generator="osmconvert 0.8.4" timestamp="2017-03-06T01:59:59Z">
<bounds minlat="43.48" minlon="-79.7899999" maxlat="43.92" maxlon="-78.9999997"/>
<node id="699540" lat="43.6751621" lon="-79.361332" version="1"/>
<node id="699569" lat="43.7247576" lon="-79.3302633" version="1"/>
<node id="1497736" lat="43.731285" lon="-79.3304523" version="1"/>
<node id="1497764" lat="43.7412456" lon="-79.332082" version="1"/>
<node id="1497766" lat="43.7418685" lon="-79.3321184" version="1"/>
<node id="1497768" lat="43.7450436" lon="-79.3327357" version="1"/>
<node id="1497773" lat="43.7459924" lon="-79.3329589" version="1"/>
<node id="1497776" lat="43.747316" lon="-79.3332228" version="1"/>
<node id="1497778" lat="43.7484115" lon="-79.3333255" version="1"/>
と私のコード:助けを
import re
contador = 0
pattern = re.compile("node")
with open('toronto1.txt') as text:
print("leu Arquivo")
with open('saida.txt', 'w') as saida:
print("criou arquivo")
for text_line in text:
comparacao = re.search(pattern, text_line)
if comparacao is not None:
node_line = text_line
split_id = re.findall(r"[\w']+", node_line)
saida.write(split_id[2]+'\n')
contador = contador + 1
print contador
saida.close()
text.close()
a = split_id[2]
print node_line
print split_id
print a
THX。
インデントを修正してください。 –
おそらく、 're.findall'によって返されるリストは1つのマッチを見つけるだけなので、あなたのリストは1つの要素しか持たないでしょう。私はあなたが何を期待しているのかわかりません... –
正規表現でXMLを解析しようとしなくて、代わりにDOMパーサを使用してください。 [this post](http://stackoverflow.com/a/1732454/62576)を参照してください。 –