[英]Python & subprocess - Open terminal session as user and execute one/two commands
[英]How can I execute two commands in terminal using Python's subprocess module?
我如何使用子模块(即call
, check_call
和Popen
)运行多个命令?
例如,假设我想快速连续执行两次ls
命令,以下语法不起作用
import subprocess
subprocess.check_call(['ls', 'ls'])
返回:
CalledProcessError: Command '['ls', 'ls']' returned non-zero exit status 2.
只需执行两次命令。
import subprocess
subprocess.check_call(['ls'])
subprocess.check_call(['ls'])
那应该足够快。
编辑
如果要在同一Shell中执行两个命令,请编写一个执行它们的Shell脚本,然后从Python运行该脚本。
您可以使用&&
或;
:
$ ls && ls
file.txt file2.txt
file.txt file2.txt
$ ls; ls
file.txt file2.txt
file.txt file2.txt
区别在于,在&&
的情况下,仅在第一个命令成功( false && ls
)时才执行第二个命令;
在这种情况下,命令将独立于首次执行而执行。
因此,Python代码将是:
import subprocess
subprocess.run(["ls; ls"], shell=True)
以下代码将起作用。 但是只执行两次ls命令会更好吗?
import subprocess
subprocess.Popen(["ls;ls"],shell=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.