2016-03-10 70 views
2

我有我使用etree讀取XML文件時得到的值的列表:Python的 - 閱讀空間分隔的數字字符串中的

[['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,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讀取和也帶(「\ 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

你可以張貼一些示例代碼,以及你在說什麼? –

+0

你好道格!我用我的代碼更新了這個問題。 – sat0408

+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 
+0

我建議你也解釋你做了什麼以及爲什麼它爲你工作。再次 - 想想下一個人。寫出你想得到的答案。 –

0

使用split(),默認情況下在空白處分割,而不是查找換行符的splitlines()。拆分將返回單個數字的列表作爲字符串。

相關問題