簡體   English   中英

如何解析多個 XML 文件,然后使用部分新的文件名保存它們?

[英]How do I parse multiple XML files and then save them with a partially new file name?

我想解析多個 xml 文件,然后用新的文件名保存它們。 但我想保留原始文件名的第一部分。

例如,如果我有以下兩個 XML 文件

Batch123.cogx.xml Batch321.cogx.xml

解析文件后,我想將它們另存為

Batch123.NO_validations.cogx.xml Batch321.NO_validations.cogx.xml

以下是我到目前為止的代碼。 如果我運行它並且我有兩個 XML 文件,我會在終端中“完成”兩次,但是,我只得到一個新文件,新文件名是 '*.NO_validations.cogx.xml' 而不是帶有新結局……

def removevalidations(filename): 
    with open(filename, 'r', encoding="utf-8") as content:   
        elem = ET.parse(filename)
        root = elem.getroot()    
        elementName = "v"
        for elementParent in root.findall(".//{}/..".format(elementName)):
            for element in elementParent.findall("{}".format(elementName)):
                elementParent.remove(element)
        elem.write('*.NO_validations.cogx.xml')
        print('completed')

for filename in glob.glob('*.cogx.xml', recursive = True):
    removevalidations(filename)   

提前致謝!!!!

您需要顯式構造新文件名,glob ( * ) 只能找到現有文件,不能像這樣用於創建新文件。 在這種特定情況下,最簡單的方法可能是 -

outfile = filename.split('.')[0] + '.NO_validations.cogx.xml'

在 function 附近,然后將其用作elem.write中的目標文件名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM