我有一个python脚本,将解析为序列号xml文件,并将它们写入一个文本文件了。下面的代码的问题是,它正在进行无限循环。如果我在登录到文件后添加一个break语句,它只写入一个序列号。如何增加计数器,以便程序在写完所有序列号后退出。打破的,而真正的循环
try:
while True:
data, addr = s.recvfrom(65507)
mylist=data.split('\r')
url = re.findall('http?://(?:[a-zA-Z]|[0-9]|[[email protected]&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', data)
print url[0]
response = urllib2.urlopen(url[0])
the_page = response.read()
tree = ET.XML(the_page)
with open("temp.xml", "w") as f:
f.write(ET.tostring(tree))
document = parse('temp.xml')
actors = document.getElementsByTagName("ns0:serialNumber")
for act in actors:
for node in act.childNodes:
if node.nodeType == node.TEXT_NODE:
r = "{}".format(node.data)
print r
logToFile(str(r))
time.sleep(10)
s.sendto(msg, ('239.255.255.250', 1900))
except socket.timeout:
pass
完成循环的条件是什么 - 您需要一些条件。 – AChampion
谢谢@AChanpion - 一旦所有连续数字都写入文件..它应该退出 –
例如,如果len(data)== 0'不能退出'? –