python -- 调用 shell 命令


一个人想像自己不懂得的事很容易浪漫 ——沉默的大多数


前言

有时候写 python 脚本的时候,直接使用 shell 命令的话会事半功倍,不需要自己再另外写函数来实现

参考:https://www.jianshu.com/p/5d999a668e79


os 模块

system 方法

system方法会创建子进程运行外部程序,方法除了返回外部程序的运行结果,还有结束的状态码 1 或 0

>>> import os
>>> os.system("echo 8")
8
0

popen 方法

popen方不仅仅返回结果,还返回一个类文件对象,通过调用该对象的read()或readlines()方法可以读取输出内容

>>> import os
>>> output = os.popen("dir").read()
>>> output
.....
>>>
>>> outputs = os.popen("dir").readlines()
>>> for line in outputs:
...     print(line)

commands 模块

getoutput 方法

这种方法同popend的区别在于popen返回的是一个类文件对象,而本方法将外部程序的输出结果当作字符串返回

# 返回(status, output)
commands.getstatusoutput(command)      
# 只返回输出结果
commands.getoutput(command)                  
# 调用了getoutput,不建议使用此方法
commands.getstatus(file)

subprocess 模块

subprocess 允许你去创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入、标准输出、标准错误以及返回码等

>>> import subprocess
>>> subprocess.call("dir", shell=True)

你可能感兴趣的:(python-基础)