如何使用子进程模块(即 call
、check_call
和 Popen
)运行多个命令?
例如,假设我想快速连续执行两次 ls
命令,以下语法不起作用
import subprocess
subprocess.check_call(['ls', 'ls'])
返回:
CalledProcessError: Command '['ls', 'ls']' returned non-zero exit status 2.
最佳答案
您可以使用&&
或;
:
$ 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)
关于python - 如何使用 Python 的子进程模块在终端中执行两个命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54632829/