【问题标题】:Why do these two command give different outputs?为什么这两个命令给出不同的输出?
【发布时间】:2016-11-08 13:18:15
【问题描述】:

命令 1:

subprocess.call(["echo","\"hw\""])

输出:

"hw"

Command2:

subprocess.call(["echo","""hw"""])

输出:

hw

【问题讨论】:

标签: python escaping subprocess


【解决方案1】:

您的第一个命令将引号传递给echo 系统命令,因此相当于在命令行上执行此操作:

$ echo "hw"

您的第二个命令仅将hw 字符串(无引号)传递给echo,相当于以下内容:

$ echo hw

在第二个命令中,您对字符串使用 docstring 表示法,它等同于 "hw"'hw'

【讨论】:

  • 感谢您的快速回复!