我正在使用以下代码将正确的结果打印到控制台,但是当我查看文件内容时,它是不正确的:
def xmls (id):
myfile = open("items2.xml", "wb")
xml_node = etree.Element("node")
item = etree.SubElement(xml_node, 'Item')
etree.SubElement(item, 'ID').text = id
# create a new XML file with the results
mydata = ET.tostring(xml_node)
print(mydata)
myfile.write(mydata)
myfile.close()
控制台输出:
b"<node><Item><ID>1</ID></Item></node>"
b"<node><Item><ID>2</ID></Item></node>"
但是文件只有一个ID:
<node><Item><ID>2</ID></Item></node>
该如何解决?
答案 0 :(得分:1)
open()
您的文件用于追加(listOne = list_one
listTwo = list_two
listKey = []
listValues = []
for x in listOne:
listKey.append(x['name'])
listValues.append(x['age'])
output_comp={}
output_comp['Output']=[]
for i in listTwo:
if i['name'] in listKey:
if i['age'] in listValues:
output_comp['Output'].append({'name': i['name'],
'age': i['age'],
'Status': 'Match'})
else:
output_comp['Output'].append({'name': i['name'],
'age':i['age'],
'Status':'age mismatch',
'Expected_age': x['age']})
else:output_comp['Output'].append({'name': i['name'],
'age': i['age'],
'Status': 'total mismatch'})
),而不是写作("a"
):
"w"
使用myfile = open("items2.xml", "ab")
覆盖文件中已有的所有内容:
打开进行写入,首先将文件截断
通过"w"
,您将获得:
打开以进行写入,并附加到文件末尾(如果存在)