我有一个使用etree读取xml文件时得到的值列表:
[['0']
['0 1.56E-013 2.22E-014 0 0 0']
['-2.84E-014 1.42E-014 2.56E-015 0 0 0']
['0 0 0 0 0 0']
['0 0 0 0 0 0']].
有人可以帮助我将每个值附加到列表中吗? 像output =
之类的东西[0,0,1.56E-013,2.22E-014,0,0,0,-2.84E-014,1.42E-014,2.56E-015,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
我尝试使用splitlines()从xml读取时也使用strip(' \ n')但我仍然可以获得上述格式的值。
提前谢谢
我已经从xml和我的代码中添加了一个片段:
<Data name="IC_001" id="2">
<Step type="IC">
0
0 1.56E-013 2.22E-014 0 0 0
-2.84E-014 1.42E-014 2.56E-015 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
</Step>
</Data>
我的代码:
import xml.etree.ElementTree as ET
tree = ET.parse('test2.xml')
root = tree.getroot()
temp = root.findall("./Step")
for item in temp:
values = item.text.strip('\n').splitlines()
print values
我的目标是将每个号码都列入一个列表。 我真的很感激任何帮助
答案 0 :(得分:1)
解决:
import xml.etree.ElementTree as ET
def test():
tree = ET.parse('test2.xml')
root = tree.getroot()
temp = root.findall("./Step")
for item in temp:
values = item.text.strip('\n').splitlines()
values_out = process_step_data(values)
print values_out
def process_step_data(output_step):
step_result = []
for i in range(len(output_step)):
for num_str in output_step[i].splitlines():
x = [float(j) for j in num_str.split()]
step_result = step_result + x
return step_result
答案 1 :(得分:0)
使用split()默认情况下在空白处拆分,而不是使用splitlines()来查找行尾字符。 Split会将各个数字的列表作为字符串返回。