5

查看http://docs.python.org/2/library/subprocess.html#frequently-used-arguments我假设除非您使用shell=True, 否则无法使用rm,cpmv。也许文档已过期-过时的,因为他们正在为调用方法提供一个字符串,它应该是一个列表。但是使用shell=False当然不会阻止使用所说的shell命令。

shell=False 禁用所有基于 shell 的功能

在查看 subprocess.py 之后,我可以看到该参数所做的只是添加["/bin/sh", "-c"]到参数字符串的开头。

有人可以为我澄清一下吗?

4

1 回答 1

6

他们谈论的 shell 功能是|管道、*glob 和其他通配符、使用>or2>的stdout/stderr 重定向<(process substitution)等。他们不是在谈论其他命令/程序,例如 mv、grep 等。

于 2012-11-08T11:37:56.280 回答