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”进行比较,那么它总是错误的。
答案 0 :(得分:3)
我认为问题是你的输出最后包含了额外的新行字符。您可以通过调用.strip()
来删除它们来修复它:
output = subprocess.check_output("./mount.sh", shell=True)
output = output.strip()
考虑以下互动环节:
>>> s = '''hello\n'''
>>> s.endswith('\n')
True