【问题标题】:comparing xmls in two folders(input and output folders) and displaying difference of each comparison using python比较两个文件夹(输入和输出文件夹)中的 xml,并使用 python 显示每次比较的差异
【发布时间】:2019-09-03 15:52:10
【问题描述】:
from xmldiff import main
diff = main.diff_files ("input1.xml","output1.xml")
print (diff)

现在这是将 input1 xml 与 output1 xml 进行比较,并显示这两个 xmls 的差异,否则如果没有差异则为 null !! 我要找的是...xmls 列表(输入 1、输入 2、输入 3 ......)存储在一个文件夹(输入文件夹)中,同样@ 987654326@ 列表(输出 1、输出 2、输出 3...)位于另一个文件夹(输出文件夹)中。我想遍历输入文件夹和输出文件夹,并逐一比较 xml ....input1 与 output1 xml 并显示差异,然后 input2 与 output2 xml 并显示差异等等.... ... 因此,输入文件夹中的所有xmls 必须与它们各自的输出xmls 进行比较,并显示是否相同或是否存在差异,然后显示这些差异。

【问题讨论】:

    标签: python


    【解决方案1】:

    xmldiff 的方法与 xml 文件相比似乎非常简单: https://github.com/Shoobx/xmldiff

    您的问题似乎有两部分,遍历文件和打印相应 xml 文件之间的差异。问题的第一部分很简单,第二部分对于分层数据要困难得多。差异确实在旁观者的眼中,我认为您需要更具体地了解您正在寻找的差异。见:http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf

    如果您的问题提供了准确的命名约定,即 (input[i], output[i]),您应该能够很容易地进行迭代。

         from xmldiff import main
    
         n = 5 # number of files in each folder. We'll use 5 for example. File names should correspond for i in range(n)
    
        for i in range(n):
            diff = main.diff_files("filepath/input{0}.xml","filepath/output{0}.xml".format(n+1)
            print(diff)
    

    我对 xml dff 了解不多,无法专门帮助您检测具体差异考虑使用xmldiff.formatting.XMLFormatter(normalize=WS_NONE, pretty_print=True, text_tags=(), formatting_tags=())

    【讨论】:

    • 执行此操作时... 出现如下错误 OSError:Error reading file 'filepath\input{0}.xml' : failed to load external entity "same path"
    • 您必须逐字输入您的文件路径。我的条目“filepath/...”只是一个占位符。
    • 是的,我已经给出了实际的文件路径.....为了提到这里,我提到了占位符......它的抛出错误如上所述...... !!
    • 你使用了那个反斜杠吗?因为那也是错误的。应该是“\”而不是“/”你的文件名实际上是按输入1、输入2、输入3...和输出1、输出2、输出3...的顺序吗?
    【解决方案2】:

    稍加修改就得到了结果- 对于范围内的 i (n): diff = main.diff_files("文件路径\输入{i}.xml".format(i+1),"文件路径\输出{i}.xml".format(i+1) 打印(差异)

    【讨论】:

      猜你喜欢
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2022-10-13
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多