2013-03-25 74 views
0

我正在嘗試使用以下代碼將數據寫入列表中的XML文件中,我對數據應該如何存在於data.xml文件中有預期的輸出...遇到編譯錯誤,任何人都可以提供關於這裏有什麼錯誤的輸入?將數據寫入列表中的xml文件

data = [['SEC.12.0', '\\\\DATA\\LOC', '\\\\ftp\\location'], ['SEC.13.0', '\\\\DATA\\LOC2', '\\\\ftp\\location2']] 


for set in data : 
    f = open('data.xml', 'w') 
    f.write(<pro>set[0]</pro>) 
    f.write(<dataloc>set[1]</dataloc>) 
    f.write(<ftploc>set[2]</ftploc>) 

錯誤: -

File "test.py", line 8 
    f.write(<pro>set[0]</pro>) 
      ^
SyntaxError: invalid syntax 

預期輸出: -

data.xml file should contain the follwing 

     <pro>SEC.12.0</pro> 
     <dataloc>\\DATA\LOC</dataloc> 
     <ftploc>\\ftp\location</ftploc> 
     <pro>SEC.13.0</pro> 
     <dataloc>\\DATA\LOC2</dataloc> 
     <ftploc>\\ftp\location2</ftploc> 

回答

0

你是不是傳遞字符串.write()

f.write('<pro>' + set[0] + '</pro>') 

set是一個內置功能,所以d不要通過命名變量set來遮蔽它。另外,如果您打算創建任何不平凡的XML,請使用像ElementTreelxml這樣的XML庫。

+0

有沒有更好的方法來實現上述? – user2125827 2013-03-25 03:59:11

+0

@ user2125827:通過使用我鏈接到的兩個庫中的一個來構建XML。第一個應該有幾個例子。 – Blender 2013-03-25 04:00:30

+0

我找不到任何例子,有什麼遺漏? – user2125827 2013-03-25 04:05:53

0

您需要將字符串傳遞給f.write(例如,f.write("<pro>%s</pro>" % (set[0])))。

注意,避免將變量命名爲「set」,因爲它是內置類型。

+0

集合[0]是不是被deciphered..and也輸出不是如在單行expected..its像 「集合[0]組[1]集[2]」 – user2125827 2013-03-25 03:55:03

+0

對不起。注意到我的錯誤。更新後的版本應該是正確的。 – 2013-03-25 03:58:15

+0

有沒有辦法在每次寫入後添加新行,而無需在python 2上添加新的f.write(「\ n」) – user2125827 2013-03-25 04:04:34