我有一个脚本,我想用它来创建写入文件以更新设备上的序列号。
它执行文件夹/文件路径检查 -> 复制 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)
也许使用 Element.get(AttributeName) 而不是 Element.attrib[AttributeName] 来访问(本例中的元素:root)。
获取 XML 中的元素:...