2013-03-25 79 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