Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行python代码后,XML文件中没有修改_Python_Xml_Elementtree - Fatal编程技术网

运行python代码后,XML文件中没有修改

运行python代码后,XML文件中没有修改,python,xml,elementtree,Python,Xml,Elementtree,我编写了一段代码,必须修改xml文件中的一些值。它看起来很有效,但是当我打开这个xml文件,并在其中添加了修改过的文件时,它没有改变任何事情。如果有人回答这样的问题,请告诉我它在哪里。下面是代码和xml import xml.etree.ElementTree as ET tree = ET.parse("farms.xml") root = tree.getroot() for elem in root.findall('farm'): elem.set('mone

我编写了一段代码,必须修改xml文件中的一些值。它看起来很有效,但是当我打开这个xml文件,并在其中添加了修改过的文件时,它没有改变任何事情。如果有人回答这样的问题,请告诉我它在哪里。下面是代码和xml

import xml.etree.ElementTree as ET
tree = ET.parse("farms.xml")
root = tree.getroot()
for elem in root.findall('farm'):
    elem.set('money', '2000')
    money = elem.get('money')
    print(money)
xml


这对我很有用。 另外,

print(xml.etree.ElementTree.tostring(root))

将显示您期望的内容。

您缺少的是将
树写回磁盘

import xml.etree.ElementTree as ET

tree = ET.parse("farms.xml")
root = tree.getroot()
for elem in root.findall('farm'):
    elem.set('money', '2000')
with open('new_farms.xml', 'wb') as f:
    tree.write(f)

您似乎没有在文件系统中包含任何将更改写回文件的代码-您能详细说明一下您是如何得出结论的,这里提供的代码应该以其他方式运行的吗?我认为set函数会在元素中更改字符串,并将money改为2000。IDK为什么“不工作”这是我第一次使用xml,你能告诉我怎么做吗?我应该在哪里添加它。这是代码的V2。
import xml.etree.ElementTree as ET def main(char):tree=ET.parse(“farms.xml”)root=tree.getroot(),用于root.findall('farm'):elem.set('money','2000')money=elem.get(str(char))print(xml.etree.ElementTree.tostring(root)),如果(输入(“要设置的数量”))主(字符)
哦,对此我很抱歉,希望你能得到这样的想法:it仍然不适合我,它对你有什么改变,你正在使用的设置是什么?init确实可以,但问题是我不需要创建新文件,你能帮我替换这个文件中的信息吗?当然。只需更改
打开('new\u farms.xml','wb')
打开('farms.xml',wb')
@很高兴我能帮上忙。请随意投票。
import xml.etree.ElementTree as ET

tree = ET.parse("farms.xml")
root = tree.getroot()
for elem in root.findall('farm'):
    elem.set('money', '2000')
with open('new_farms.xml', 'wb') as f:
    tree.write(f)