1

使用 python 我为一个文件创建一个哈希结果。我从其他地方检索哈希结果,但我必须使用标准输出检索它,我想比较两者。但是检索到的标准输出作为列表检索,并\n在末尾有一个。例如,如果我打印它,它可能看起来像这样:[6d52f\n]

我知道问题在于,如果我\n尝试\n将可以比较两者。我知道答案可能正盯着我看,但我将不胜感激。

我的代码是:

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

我必须使用标准输出来检索它

您可能指的是“stdin”,而不是“stdout”。

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

或者您可以other_hash.rstrip()不带参数调用以删除所有尾随空格。

于 2012-08-29T11:48:57.290 回答
0

只需将应用于其他哈希:

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

一些额外的建议:

  1. 不要使用无关紧要的括号。是pythonic。
  2. 可能小写otherhash 可能是一个好主意。
于 2012-08-29T11:50:39.990 回答