0

プロセスから生成された 2 つのログ ファイルがあります。1 つのファイル (ゴールデン ファイル) を別のファイルと比較して、ファイルが正しいかどうかを確認します。同じ値を持つ必要があります。通常、diff ユーティリティを使用して 2 つのファイルを比較します。プロセス生成ファイルにマシン情報を追加する拡張機能があります。したがって、前の行と比較して、新しい変更を無視したいと思います。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)

次のコードを書きました。コードを改善するためのより良い方法はありますか

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 関数はリストでも問題なく動作しますか? 初めて使用しましたが、内部の仕組みがわかりません。

4

2 に答える 2

1

この単純なものの場合:

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最短の長さで反復可能な一致を返すという事実を利用する

于 2013-08-16T12:08:40.687 に答える
0

difflibを使用します。コマンドラインなどのほとんどのことをdiff行います。

于 2013-08-16T11:50:09.993 に答える