从一个xml文件中读取多个xml文件,然后通过Python将其隔离到新文件中

时间:2019-07-18 05:33:26

标签: python readfile readline writefile file-structure

我有一个主文件(虚拟文件),它指向两个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的内容。

1 个答案:

答案 0 :(得分:0)

您正在为cntTestFile1.xml使用相同的TestFile2.xml值。 因此,您将为其生成相同的输出文件(后者的输出将覆盖第一个文件)。 您可以:

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