欢迎访问宙启技术站
智能推送

如何在Python控制台中运行外部命令

发布时间:2023-12-27 04:15:12

在Python中可以使用os.systemsubprocess模块来运行外部命令。下面是这两种方法的详细说明及使用例子。

方法一:使用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控制台中运行外部命令。两种方法的选择取决于具体的需求。