首页 > 解决方案 > 从一个 xml 文件中读取多个 xml 文件并通过 Python 将它们分离到新文件中

问题描述

我有一个指向两个 XML 文件(TestFile1 和 TestFile2)的主文件(虚拟文件)。每个文件(TestFile1 & TestFile2)由多个 xml 文件组成。我正在尝试生成新的单个 xml 文件(NewFile1、NewFile2、NewFile3、NewFile4)

DummyFile.txt 的内容

C:/Python27/TestFile1.xml
C:/Python27/TestFile2.xml

TestFile1.xml 的内容:

STLD 20190717 1234 67889056 826 123 L <TLD logVersion= "1.0"></TLD>
STLD 20190717 1234 67889056 826 124 L <TLD logVersion= "1.0"></TLD>

TestFile2.xml 的内容:

STLD 20190717 1234 67889056 826 125 L <TLD logVersion= "1.0"></TLD>
STLD 20190717 1234 67889056 826 126 L <TLD logVersion= "1.0"></TLD>

以下是我尝试过的python代码:

filepath = 'C:/Python27/DummyFile.txt'
with open(filepath) as fp:
    for j in fp:
        with open(j.rstrip()) as f1:
        #f1 = open(j.rstrip(),"r")
            Lines=f1.readlines()
            cnt=1
            for i in Lines:
                f2=open("NewFile"+str(cnt)+".txt","w")
                f2.write(i)
                cnt=cnt+1

            #f1.close()
            f2.close()

已生成的 NewFile1 的内容:

STLD 20190717 1234 67889056 826 125 L <TLD logVersion= "1.0"></TLD>

已生成的 NewFile2 的内容:

20190717 1234 67889056 826 126 L <TLD logVersion= "1.0"></TLD>

使用上面的实现,我只能使用 TestFile2 的内容生成 NewFile1 和 NewFile2。它没有填充 TestFile1 的内容。

标签: pythonreadfilereadlinewritefilefile-structure

解决方案


您对和使用相同cnt的值。因此,您正在为它们生成相同的输出文件(后者的输出覆盖第一个)。您可以:TestFile1.xmlTestFile2.xml

  1. cnt初始化移到for循环之外
  2. 像这样创建文件名时添加唯一字符串f2=open("NewFile"+<unique string>+str(cnt)+".txt","w")

推荐阅读