字符串比较失败

时间:2014-02-10 01:14:01

标签: python string comparison

output = subprocess.check_output("./mount.sh", shell=True)
print output
if output == "expected_String":
      print "Hurray!"

(打印命令只是检查输出是否符合我的预期)。每次比较失败,我不明白为什么。我试着用它来代替check_output

(stdout, stderr) = Popen(["./mount.sh"], stdout=PIPE).communicate()
mountout = stdout

但我认为这不是问题,因为

 print output

给了我我的期望,但如果我尝试将它与我的“expected_String”进行比较,那么它总是错误的。

1 个答案:

答案 0 :(得分:3)

我认为问题是你的输出最后包含了额外的新行字符。您可以通过调用.strip()来删除它们来修复它:

output = subprocess.check_output("./mount.sh", shell=True)
output = output.strip()

更新:如何找出字符串是否以新行结尾?

考虑以下互动环节:

>>> s = '''hello\n'''
>>> s.endswith('\n')
True