1. os.popen 命令
python 内置的 os.popen 命令可以用于执行简单的命令。
import os
# 直接运行的命令,如:打开记事本
os.popen('notepad')
# 获得运行的log或结果,如:列出文件清单
r = os.popen('tree')
print(r.read())
2. subprocess 模块
复杂一点的命令可以使用 subprocess 模块,也是 python 内置的,可以对输入/输出进行操作;
2.1 subprocess.call 命令
import subprocess
# 可显示运行log/结果
subprocess.call('pip list', shell=True)
# 可交互
subprocess.call('pip uninstall pip', shell=True)
# 返回值为错误代码
retcode = subprocess.call('tree', shell=True)
print(retcode)
2.2 subprocess.Popen 命令
import subprocess
# 获得运行结果,一次读取所有,要等待命令运行结束
p = subprocess.Popen('ping baidu.com', shell=True, stdout=subprocess.PIPE).stdout
print(p.read().decode('gbk'))
# 获得运行结果,一次读取一行
p = subprocess.Popen('ping baidu.com', shell=True, stdout=subprocess.PIPE)
for line in iter(p.stdout.readline, b''):
print(line.strip().decode('gbk'))
subprocess.Popen 参数比较复杂,更多用法参见:
帮助文档
网友评论