如何在Python控制台中运行外部命令
发布时间:2023-12-27 04:15:12
在Python中可以使用os.system或subprocess模块来运行外部命令。下面是这两种方法的详细说明及使用例子。
方法一:使用os.system()
os.system()函数在一个子shell中执行一个系统命令,并能够返回命令的执行状态。下面是os.system()的使用方法:
import os
# 运行命令,例如打印当前目录下的文件列表
os.system('ls')
# 命令执行成功时返回0,失败时返回一个非零的值
status = os.system('ls')
if status == 0:
print('Command executed successfully')
else:
print('Command failed')
需要注意的是,os.system()函数会阻塞Python程序,直到命令执行完毕。因此如果希望以非阻塞的方式执行外部命令,可以使用下面的方法。
方法二:使用subprocess模块
subprocess模块提供了更高级的接口来创建子进程并与其进行通信。下面是subprocess模块的使用方法:
import subprocess
# 运行命令,例如打印当前目录下的文件列表
subprocess.run(['ls'])
# 获取命令的输出
result = subprocess.run(['ls'], capture_output=True, text=True)
print(result.stdout)
# 获取命令的退出状态码
status = subprocess.run(['ls']).returncode
if status == 0:
print('Command executed successfully')
else:
print('Command failed')
subprocess.run()函数默认会等待命令执行完毕,并返回一个CompletedProcess对象,其中包含命令的执行结果。可以通过capture_output参数来获取命令的输出,并通过text参数来指定输出为字符串形式。
需要注意的是,subprocess.run()函数在Python 3.5之后才可用。在Python 3.4及更早的版本中,可以使用subprocess.call()或subprocess.Popen()来执行外部命令。
使用subprocess模块还可以实现更复杂的功能,例如向命令输入数据、获取命令的实时输出等。具体的用法请参考Python官方文档中subprocess模块的说明。
综上所述,我们可以使用os.system()或subprocess模块来在Python控制台中运行外部命令。两种方法的选择取决于具体的需求。
