这是我的代码,有一些我想问的问题。
import lxml.etree as etree
from xml.etree import ElementTree
import glob
openFiles = 'myxml/*.xml'
list = []
for xmlfiles in glob.glob(openFiles):
tree = ElementTree.parse(xmlfiles)
for node in tree.iter('c1'):
branch_coverage = node.attrib.get('percentage')
list4.append(branch_coverage)
else:
list4.append("none")
...
我想从树上打印一些元素。我有68个xml文件,我想处理。但并非所有文件都有树(" c1")。所以在else语句中我尝试打印" none"。当我运行我的程序时,这就是问题所在。输出始终打印"无"在打印"百分比"
之后例如
输出错误:无,100%,无,100%,无,100%,无,无,无,100%,无
预期产出:
无,100%,100%,100%,无,无,100%
答案 0 :(得分:1)
出现此问题的原因是,您将else
放在for
之后,因此在for循环结束后始终会调用else部分,因为for循环在其条件变为{{1所以它进入False
部分。
你需要像 -
这样的东西else
答案 1 :(得分:0)
您可以尝试使用标志:
for xmlfiles in glob.glob(openFiles):
tree = ElementTree.parse(xmlfiles)
found = False
for node in tree.iter('c1'):
branch_coverage = node.attrib.get('percentage')
list4.append(branch_coverage)
found = True
if not found:
list4.append("none")
...