是';打印';关键词?如何用python字符串描述这个shell命令?

是';打印';关键词?如何用python字符串描述这个shell命令?,python,shell,Python,Shell,当格式化作为shell命令的字符串时,会报告一些错误 python代码: str = "jps | grep {0} | grep -v {1} | awk '{print $1}' | xargs kill -9".format(1,2) 错误信息: Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'print' 回溯(最近一次呼叫最后一次): 文件“”

格式化
作为shell命令的字符串时,会报告一些错误

python代码:

str = "jps | grep {0} | grep -v {1} | awk '{print $1}' | xargs kill -9".format(1,2)
错误信息:

Traceback (most recent call last):
File "<stdin>", line 1, in <module> KeyError: 'print'
回溯(最近一次呼叫最后一次):
文件“”,第1行,输入错误:“打印”
如何修复它?

使用:

>>> "jps | grep {0} | grep -v {1} | awk '{{print $1}}' | xargs kill -9".format(1,2)
"jps | grep 1 | grep -v 2 | awk '{print $1}' | xargs kill -9"
答题 在Python2.7中,
print
是一个关键字。在Python3.x中,它不是

修正代码 为什么?
当您将一个值以格式包装到extra
{}
中时,它将逐字解释字符串,而不是试图替换它。

您能解释为什么这是正确的解决方案吗?
"jps | grep {0} | grep -v {1} | awk '{{print $1}}' | xargs kill -9".format(1,2)