Python 将两个文件与指定行进行比较
我们有两个日志文件,其中一个是由进程生成的。我们将一个文件(黄金文件)与另一个文件进行比较,以检查文件是否正确。它应该具有相同的值。我们通常使用diff实用程序来比较两个文件。我已经得到了增强,可以将机器信息添加到进程生成的文件中。所以我想和前一行进行比较,忽略新的变化。 有谁能给我提供我可以在python中使用的实用程序吗 金锉Python 将两个文件与指定行进行比较,python,python-2.7,Python,Python 2.7,我们有两个日志文件,其中一个是由进程生成的。我们将一个文件(黄金文件)与另一个文件进行比较,以检查文件是否正确。它应该具有相同的值。我们通常使用diff实用程序来比较两个文件。我已经得到了增强,可以将机器信息添加到进程生成的文件中。所以我想和前一行进行比较,忽略新的变化。 有谁能给我提供我可以在python中使用的实用程序吗 金锉 CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -rise -data CMD gen -vdd 0
CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -rise -data
CMD gen -vdd 0.99 -vss 0 -sinps 0.06 -slew 0.1 -temp -40 -rise -clock
CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -fall -data
CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -fall -data
CMD gen -vdd 0.99 -vss 0 -sinps 0.06 -slew 0.1 -temp -40 -rise -clock
CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -rise -data
Temp1 Temp2 Temp3 Temp4 Temp5 Temp6
-31.00 -19.00 -3.00 -8.00 43.00 61.00
进程文件
CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -rise -data
CMD gen -vdd 0.99 -vss 0 -sinps 0.06 -slew 0.1 -temp -40 -rise -clock
CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -fall -data
CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -fall -data
CMD gen -vdd 0.99 -vss 0 -sinps 0.06 -slew 0.1 -temp -40 -rise -clock
CMD gen -vdd 0.99 -vss 0 -sinps 0.02 -slew 0.1 -temp -40 -rise -data
Temp1 Temp2 Temp3 Temp4 Temp5 Temp6
-31.00 -19.00 -3.00 -8.00 43.00 61.00
Adding machine name( ignore machine name)
我已经在下面写了代码。我们可以用更好的方法来改进代码吗
data = None
with open("Golden_File",'r+') as f:
data = f.readlines()
del data[-1]
data_1 = None
with open("cp.log",'r+') as f:
data_1 = f.readlines()
del data_1[-1]
print cmp(data, data_1)
[问题]:cmp函数在列表中也可以正常工作吗。我第一次用过,不知道内部是如何工作的 使用。它可以完成命令行
diff
的大部分工作以及更多工作。对于这样简单的事情:
with open('golden_file') as afile, open('process_file') as bfile:
matches = len(afall(aline == bline for aline, bline in zip(afile, bfile))
# check the golden file iterator is exhausted
if any(afile):
matches = False
利用zip
返回最短长度的iterable匹配