python shell 执行
2021-01-29 01:13
标签:ls -l readline 情况 mmu pen ls -ld except ESS urllib system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果。这个方法比较适用于外部程序没有输出结果的情况。 当需要得到外部程序的输出结果时,本方法非常有用。比如使用urllib调用Web API时,需要对得到的数据进行处理。os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等 如a=os.popen(cmd).read() 使用commands模块的getoutput方法,这种方法同popend的区别在于popen返回的是一个文件句柄,而本方法将外部程序的输出结果当作字符串返回,很多情况下用起来要更方便些。 根据Python官方文档说明,subprocess模块用于取代上面这些模块。有一个用Python实现的并行ssh工具—mssh,代码很简短,不过很有意思,它在线程中调用subprocess启动子进程来干活。 python shell 执行 标签:ls -l readline 情况 mmu pen ls -ld except ESS urllib 原文地址:https://www.cnblogs.com/iFanLiwei/p/12833836.htmlos.system
import os
os.system(‘ls‘)
os.popen
import os
ls = os.popen(‘ls‘)
print ls.read()
commands.getstatusoutput
主要方法:
import commands
commands.getstatusoutput(‘ls -lt‘) # 返回(status, output)
subprocess.call
from subprocess import call
call(["ls", "-l"])
import shlex, subprocess
def shell_command(cmd, timeout) :
data = {"rc":False, "timeout":False, "stdout":"", "stderr":""}
try :
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
try:
outs, errs = process.communicate(timeout=timeout)
data["stdout"] = outs.decode("utf-8")
data["stderr"] = errs.decode("utf-8")
data["rc"] = True
except subprocess.TimeoutExpired :
process.kill()
outs, errs = process.communicate()
data["rc"] = False
data["stdout"] = outs.decode("utf-8")
data["stderr"] = "timeout"
data["timeout"] = True
except Exception as e :
data["rc"] = False
data["stderr"] = e
finally :
return data
上一篇:JAVA学习-初级