1

Python を使用して、ファイルのハッシュ結果を作成します。別の場所からハッシュ結果を取得しますが、標準出力を使用して取得する必要があり、2 つを比較したいと考えています。ただし、取得された stdout はリストとして取得され\n、末尾に a があります。印刷すると、たとえば次のようになります。[6d52f\n]

\n問題は、現在のハッシュ結果にを追加しようとすると、を自動的に無視し\nて 2 つを比較しようとすることです (以下のコードで行うように)。 2つを比較できます。答えがおそらく私をじっと見つめていることは知っていますが、助けていただければ幸いです。

私のコードは次のとおりです。

if ("%s\n" % thishash == otherhash):
    print "they are the same"
else:
    print "they are not the same"
4

3 に答える 3

1

から改行を削除するだけstdinです:

>>> x = ['6d52f\n']
>>> x[0].rstrip('\n')
'6d52f'
于 2012-08-29T11:37:01.803 に答える
0

ストリップを otherhash に適用するだけです:

if thishash == otherhash.strip():
    print "they are the same"
else:
    print "they are not the same"

その他の推奨事項:

  1. 意味のない括弧は使用しないでください。パイソンになる。
  2. おそらくotherhashを小文字にすることは良い考えかもしれません。
于 2012-08-29T11:50:39.990 に答える
0

stdout を使用して取得する必要があります

「stdout」ではなく「stdin」を意味する場合があります。

other_hash = raw_input() # no trailing newline
if this_hash == other_hash: 
   "same"

other_hash.rstrip()または、引数なしで呼び出して、末尾の空白をすべて削除することもできます。

于 2012-08-29T11:48:57.290 に答える