如何用Python写入xml文件根值

问题描述 投票:0回答:1

我有一个脚本,我想用它来创建写入文件以更新设备上的序列号。

它执行文件夹/文件路径检查 -> 复制 Read.xml 并创建 Write.xml(复制) -> 使用 .getroot 获取要更新的序列号 -> 然后我想对此更新/写入新值写入.xml

如何更改 root_IM1[1][2].text 处的值?

#Import File Path Verification
import os
import sys
import os.path
import time
from pathlib import Path
import shutil

#XML
import xml.etree.ElementTree as ET

#Shell Command
import subprocess

#Enter Serial No.
NAC_Ser = 012345678

#Check Folder Structure
NAC_FilePath = Path(f"C:\Folder\\{(NAC_Ser}")
folp1_2 = Path(f"C:\Folder\{(NAC_Ser}\Folder1")
folp2_2 = Path(f"C:\Folder\{(NAC_Ser)}\Folder1\Folder2_1")
folp3_2 = Path(f"C:\Folder\{(NAC_Ser)}\Folder1\Folder2_2")

if (NAC_FilePath.exists() == True) and (folp1_2.exists() == True) and (folp2_2.exists() == True) and (folp3_2.exists() == True):
    print("\n")
    print("Folder Check Passed\n")

else:
    print("\n")
    print("Failed Folder Check")
    
#Declare Filepaths Global
global fp1_2

#Check File Exist
fp1_2 = Path(f"C:\Folder\{(NAC_Ser)}\Folder1\Folder2_1\ReadIm1.xml")

if (fp1_2.exists() == True):
    print("File Check Passed\n")
    print("XML File Imported\n")
else:
    print("Failed File Check")

# Copy Read Files
# Rename Read Files (Copy) to Write Files
# Write New Values to  Write.XML 

print("\n")
print("Creating Write XML Files...")

# Source Filepath for Copy -> Destination Filepath -> New File Name
print("\n")
print("Source FilePath to Copy:")
print(fp1_2)
print("\n")
print("New Destination FilePath & New FileName:")
dest_fp1 = Path(f"C:\Folder\{(NAC_Ser)}\Folder1\Folder2_1\WriteIM1.xml")
print(dest_fp1)
shutil.copy2(fp1_2, dest_fp1) # Copy the file


#XML Query 
tree_IM1 = ET.parse(dest_fp1)
root_IM1 = tree_IM1.getroot()

#IM1 -> IIB PCB Serial (Current)
IM1_IIBSerial = (f"{root_IM1[1][2].text}")
print(IM1_IIBSerial)

#IM1 -> IIB PCB Serial (New Updated)
IM1_IIBSerial_New = 12345
print(IM1_IIBSerial_New)
python xml elementtree
1个回答
0
投票

也许使用 Element.get(AttributeName) 而不是 Element.attrib[AttributeName] 来访问(本例中的元素:root)。

获取 XML 中的元素:...

© www.soinside.com 2019 - 2024. All rights reserved.