我有1000多行是通过python中的xml文件导入的,我想从第一行开始,每第二行从三个选定的选项卡/列打印到第20行,但我不知道如何将range函数放入xml文件的print函数中。请参见下面的示例代码:
##使用元素树导入xml文件
import xml.etree.ElementTree as ET
xmlFile = "FilePath/DataName.xml"
tree = ET.parse(xmlFile)
root = tree.getroot()
try: import xml.etree.ElementTree as ET
except ImportError:
print('An error occurred trying to read the file.')
print(root[0].tag)
###示例1##########
for x in root.findall('Root'):
tag1 =x.find('tag1').text
tag4 = x.find('tag4').text
tag5 = x.find('tag5').text
selectedrows = [tag1, tag4, tag5]
for i in range(0, len(selectedrows)):
print(selectedrows[i])
###例2###我可以每隔一行打印一次,但不能输入最大值。如果我输入(0,19,2)作为len()的范围,我会得到一个错误
print(root[0].tag)
for x in root.findall('root'):
tag1 =x.find('tag1').text
tag4 = x.find('tag4').text
tag5 = x.find('tag5').text
selectedrows = [tag1, tag4, tag5]
for i in range(0, len(selectedrows), 2):
print(selectedrows[i])
###上述代码打印所选列/标记,但如何将范围(0、19、2)包含到上述范围函数中。我已经阅读了许多使用范围(0,len(??)函数在线打印文本的教程,但没有一个详细介绍如何在打印时选择行和列。甚至有可能做到这一点吗?还是应该另存为CSV并创建阵列
在代码中
selectedrows
只为for x
循环的每个迭代保存三个标记。如果我理解正确,您希望在xloop, append the three tags as one element of this list, and once you parsed your xml, print a subset of
selectedrows`的1之前初始化列表selectedrows
。像这样的上述内容将每隔一行打印一次(不在第20行停止)。如果需要,可以将其修改为
for i in range(0, 19, 2)
。另外,如果您只需要前20行,那么您可能需要在20次迭代后停止for x
循环相关问题 更多 >
编程相关推荐