将两个文件与指定的lin进行比较

2024-06-02 05:18:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有两个日志文件,其中一个是从过程。我们将一个文件(黄金文件)与另一个文件进行比较,检查文件是否正确。它应该有相同的价值。我们通常使用diff工具来比较两个文件。我得到了增强,可以将机器信息添加到进程生成的文件中。所以我想和前一行比较,忽略新的变化。 有谁能给我提供一些我可以在python中使用的实用程序吗。你知道吗

金色文件

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)

我已经把代码写进去了跟踪。Can我们需要更好的方法来改进代码

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函数在列表中也可以正常工作吗。我用了第一次,不知道如何内部工作。你知道吗


Tags: 文件cmddata进程vsstempgenrise
2条回答

对于这么简单的事情:

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匹配

使用difflib。它可以完成命令行diff的大部分工作,甚至更多。你知道吗

相关问题 更多 >