gpt4 book ai didi

python - 跳出 while True 循环

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:54 24 4
gpt4 key购买 nike

我有一个 python 脚本,它将解析 xml 文件中的序列号并将它们写入文本文件。下面代码的问题是,它正在进行无限循环。如果我在记录到文件后的某个位置添加一条break语句,它只会写入一个序列号。如何增加计数器,使程序在写入所有序列号后退出。

try:
while True:
data, addr = s.recvfrom(65507)
mylist=data.split('\r')
url = re.findall('http?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[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

最佳答案

我通常会创建一个标志,以便 while

while working == True:

然后在适当的时间重置标志。

这允许您使用else语句关闭文本文件并在while循环完成后输出最终结果。 Else clause on Python while statement .

请注意,完成后显式关闭打开的文件总是比依赖垃圾回收更好。您还应该关闭文件并在 except 逻辑中输出超时消息。

为了进行调试,您可以在每次写入文本文件时输出一条语句。

关于python - 跳出 while True 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com