繁体   English   中英

如何使用Python的子进程模块在终端中执行两个命令?

[英]How can I execute two commands in terminal using Python's subprocess module?

我如何使用子模块(即callcheck_callPopen )运行多个命令?

例如,假设我想快速连续执行两次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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM