我正在编写xml文件,如果已经存在同名的文件,我想在xml文件名的末尾添加一个数字,因此得到:
info_for_john_0.xml
info_for_john_1.xml
info_for_john_2.xml
这是我目前的代码:
def pxml(listofdata):
root = et.Element('INFORMATION')
et.SubElement(root, 'last_name') = listofdata[0]
et.SubElement(root, 'phone') = listofdata[1]
et.SubElement(root, 'email') = listofdata[2]
tree = et.ElementTree(root)
ctr = 1
for i in tree.iter('last_name'): # should be person_id
name = i.text
if os.path.exists(f"info_for_{name}_{ctr}.xml") == True:
tree.write(f"info_for_{name}_{ctr}.xml")
ctr += 1
else:
tree.write(f"info_for_{name}_{ctr}.xml")
然而,我得到的只是:
info_for_john_0.xml
info_for_john_1.xml
之后就是不断地重写info\u for\ujohn\u1.xml。我怀疑这是因为我在函数中声明了ctr=1,所以每次调用它时,ctr的值都会重置为1。你知道吗
我尝试过将ctr作为全局变量并访问,如下所示:
ctr = 1
def pxml(listofdata):
root = et.Element('INFORMATION')
et.SubElement(root, 'last_name') = listofdata[0]
et.SubElement(root, 'phone') = listofdata[1]
et.SubElement(root, 'email') = listofdata[2]
tree = et.ElementTree(root)
count = global ctr
for i in tree.iter('last_name'): # should be person_id
name = i.text
if os.path.exists(f"info_for_{name}_{ctr}.xml") == True:
tree.write(f"info_for_{name}_{ctr}.xml")
count += 1
else:
tree.write(f"info_for_{name}_{ctr}.xml")
但是我收到一个语法错误,count=global ctr是无效语法。我不确定如何访问全局变量。--编辑--解决如下问题,更改为:
global ctr
count = ctr
将
count = global ctr
更改为看看这样行不行
相关问题 更多 >
编程相关推荐