Python 为什么这两个命令给出不同的输出?

Python 为什么这两个命令给出不同的输出?,python,escaping,subprocess,Python,Escaping,Subprocess,命令1: subprocess.call(["echo","\"hw\""]) "hw" subprocess.call(["echo","""hw"""]) hw 输出: subprocess.call(["echo","\"hw\""]) "hw" subprocess.call(["echo","""hw"""]) hw 命令2: subprocess.call(["echo","\"hw\""]) "hw" subprocess.call(["echo","""hw"

命令1:

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

subprocess.call(["echo","\"hw\""])
"hw"
subprocess.call(["echo","""hw"""])
hw
命令2:

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

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

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

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

$ echo hw

在第二个命令中,您正在使用字符串的docstring表示法,这相当于
“hw”
以及
“hw”
“some string”==“some string”感谢您的快速响应!