如何使用python比较2个yaml文件作为参数并使用Python删除文件中的重复项

时间:2019-07-02 07:24:08

标签: python regex yaml

代码正常工作,除了检查重复项。如果输入相同(yaml文件1) 来了,那么输出(yaml文件2)应该不会更新。

我有2个Yaml文件用于版本检查。最后添加数字,直到前面的数字相同为止。 Yaml文件必须作为参数传递

python yaml_file1 yaml_file2

import re
import sys

yaml_file1 = sys.argv[1]
yaml_file2 = sys.argv[2]


rx = r'(?<=:)(\d*)$'

with open(yaml_file1,'r') as fh:
    fh_n = fh.read()
    with open(yaml_file2, 'a+') as fw:
        fw.write(re.sub(rx , lambda x: str(int(x.group(0)) + 1) if len(x.group(1)) else "0", fh_n, 1, re.M))

yaml文件1(第一个参数)

pip5.1:
     django5.0:

第一次执行后,yaml文件2(第二个参数)将最后添加0,因为没有数字

pip5.1:0
      django5.0:

现在yaml文件1(第一个参数)

pip5.1:
     django5.0:

执行yaml文件2之后(第二个参数),因为ipml5.1:0已经在yaml 2文件中,所以什么也没发生 yaml文件2

 pip5.1:
         django5.0:

现在yaml文件1(第一个参数)

pip5.1:10
     django5.0:

执行yaml文件2(第二个参数)后,#yaml 2的最后一个数字增加了1,并将附加到先前的yaml 2文件中

pip5.1:11
      django5.0:
pip5.1:0
      django5.0:

0 个答案:

没有答案