在Python中执行外部命令,你可以使用`os`模块的`os.system`函数,或者`subprocess`模块的`Popen`类。以下是两种方法的简要说明:
使用`os.system`
import os
os.system('ls') 在Linux上列出当前目录内容
特点:
直接调用系统shell执行命令。
返回命令的退出状态码。
限制:
无法获取命令的输出。
使用`subprocess.Popen`
import subprocess
process = subprocess.Popen('ls', stdout=subprocess.PIPE)
output, error = process.communicate()
print(output.decode()) 将输出解码为字符串并打印
特点:
提供更丰富的功能,可以控制子进程的输入、输出和错误。
支持多种参数和模式。
限制:
阻塞方法,如果命令输出很多,可能会阻塞程序。
需要使用`communicate`方法来获取输出。
注意事项
当使用`shell=True`时,命令字符串会被shell解析,这可能会带来安全风险,特别是当命令字符串来自不可信的源时。
在处理命令输出时,应确保对输出进行适当的解码,以便在Python中正确显示。