I am new to Python, thus apologize in advance! I am trying to return two lists from a function with a while loop that reads an xml file. I can't figure out how to do it. I am referring to imres (integer) and subres (2 integers) in the code below, that are found ~10 times in the loop. Debuging shows that the variables are properly filled in the loop, but I don't know how to return the filled lists and I get the empty lists instead. Thanks.
def getresolution(node):
imres = []
subres = []
child4 = node.firstChild
while child4:
...
for child8 in keepElementNodes(child7.childNodes):
if child8.getAttribute('Hash:key') == 'ImageSize':
X = float(child8.getElementsByTagName('Size:width')[0].firstChild.data)
Y = float(child8.getElementsByTagName('Size:height')[0].firstChild.data)
imres += [[X, Y]]
if child8.getAttribute('Hash:key') == 'Resolution':
subres += [int(child8.firstChild.data)]
getresolution(child4)
child4 = child4.nextSibling
return [imres, subres]
[imres, subres] = getresolution(xml_file)
Not tested but this should point you in the right direction:
def getresolution(node):
imres = []
subres = []
child4 = node.firstChild
while child4:
...
for child8 in keepElementNodes(child7.childNodes):
if child8.getAttribute('Hash:key') == 'ImageSize':
X = float(child8.getElementsByTagName('Size:width')[0].firstChild.data)
Y = float(child8.getElementsByTagName('Size:height')[0].firstChild.data)
imres += [[X, Y]]
if child8.getAttribute('Hash:key') == 'Resolution':
subres += [int(child8.firstChild.data)]
t_imres, t_subres = getresolution(child4)
imres += t_imres
subres += t_subres
child4 = child4.nextSibling
return [imres, subres]
[imres, subres] = getresolution(xml_file)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.