나는 일련 번호에 대한 xml 파일을 구문 분석하여 텍스트 파일에 쓰는 python 스크립트가 있습니다. 아래 코드의 문제점은 무한 루프에 있습니다. break 문을 파일에 기록한 후에 하나의 일련 번호 만 쓰는 경우를 생각해보십시오. 카운터를 늘리면 모든 일련 번호를 작성한 후 프로그램이 종료됩니다. 그동안이while while of while True 루프
while working == True:
그런 다음 적절한 시간에 플래그를 재설정 될 수 있도록
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 '을 종료 할 수 없습니까? –