python - 比较两个文件夹(输入和输出文件夹)中的 xml,并使用 python 显示每次比较的差异
问题描述
from xmldiff import main
diff = main.diff_files ("input1.xml","output1.xml")
print (diff)
现在这是比较 input1xml
和 output1xml
并显示这两个xmls
的差异 else null 如果没有差异!我要找的是... xmls
(input1,input2,input3 ....)列表存储在一个文件夹(输入文件夹)中,类似地xmls
(output1,output2,output3 ...)列表在另一个文件夹中(输出文件夹)。我想遍历输入文件夹和输出文件夹,并逐一比较xml
....input1 与 output1xml
并显示差异,然后 input2 与 output2xml
并显示差异等等......因此,全部xmls
在输入文件夹中必须与它们各自的输出进行比较,xmls
并显示是否相同或是否存在差异,然后显示这些差异。
解决方案
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=())
推荐阅读
- c++ - 为什么我会出现看似随机的语法错误?
- python - 如何从 VideoCapture 中删除黑色边框?
- c++ - LLVM Pass:更改函数调用的参数值
- outlook-addin - 启用获取文件内容
- maven - 所有的maven镜像都一样吗?
- php - 在 PHP Mailer 中将 first_name 与 last_name 组合以给出全名
- android - onResponse 函数的 if 条件无法正常工作
- azure-data-factory - 在 Azure 数据工厂中转换数据类型
- android - 使用普通签名的现有android应用程序,为什么即使我使用Google Play App Signing更改了签名,我也可以更新它?
- python - 为什么数据框中两行的 datetime = 0 的差异?