字符串比较失败

2024-05-17 20:35:24 发布

您现在位置:Python中文网/ 问答频道 /正文

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

(print命令只是检查输出是否符合我的预期),每次比较都失败,我不知道原因。我试过用这个代替检查输出

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

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

 print output

给我我想要的,但如果我试图把它与我的“期望字符串”相比较,它总是错误的。


Tags: 命令trueoutputstringifcheckshstdout
1条回答
网友
1楼 · 发布于 2024-05-17 20:35:24

我认为问题在于你的输出在末尾包含了额外的新行字符。您可以通过调用.strip()删除以下内容来修复:

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

更新:如何确定字符串是否以新行结尾?

考虑以下交互式会话:

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

相关问题 更多 >