subprocess模块(代码片段)

author author     2023-01-03     763

关键词:



```import os
## os.system() #输出命令结果到屏幕,返回命令的执行状态
## os.popen("dir").read #会保存命令的执行结果并输出

# 在linux里面
import  subprocess
subprocess.run(["ipconfig","ping 192.168.1.1"]) #同时执行多条命令
subprocess.run("df -h |grep book",shell=True) #把book文件过滤出来(涉及到管道符直接把字符串传给真正在调用的shell)

##subprocess模块常用命令

#执行命令,返回命令执行状态 , 0 or 非0  和os.sys一样
retcode = subprocess.call(["ls", "-l"])

#执行命令,如果命令结果为0,就正常返回,否则抛异常
subprocess.check_call(["ls", "-l"])
0

##(必须会用的)接收字符串格式命令,返回元组形式,第1个元素是执行状态,第2个是命令结果(有执行状态也有结果)
subprocess.getstatusoutput(‘ls /bin/ls‘)
(0, ‘/bin/ls‘)

#接收字符串格式命令,并返回结果
subprocess.getoutput(‘ls /bin/ls‘)
‘/bin/ls‘

#执行命令,并返回结果,注意是返回结果,不是打印,下例结果返回给res
res=subprocess.check_output([‘ls‘,‘-l‘])
res
b‘total 0
drwxr-xr-x 12 alex staff 408 Nov 2 11:05 OldBoyCRM
‘

##把结果存在管道里,用stdout读取
res=subprocess.Popen("ifconfig|grep 192",shell=True,stdout=subprocess.PIPE)
res.stdout.read()

##stdout对屏幕的标准输出
##stdin 标准输入
##stderr 把错误单独分开
res=subprocess.Popen("ifcontttfig|grep 192",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
res.stdout.read() #因为命令错误所以读取为空
res.stderr.read() #读取错误信息

# poll()
res=subprocess.Popen("slppe 10;echo ‘hello‘",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
print(res.poll())#输出none代表命令程序没有执行完,返回0表示命令程序执行完。
res.wait() #等待命令执行完后返回0
res.terminate() #杀死正在执行程序,读取程序信息是空

# cwd
res=subprocess.Popen("slppe 10;echo ‘hello‘",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,cwd="/temp")
res.stdout.read() #b‘/tmp
‘新启动的shell目录所在的地方

#sudo自动输入密码
echo"123" | sudo -S apt-get install vim  #自动输密码
subprocess.Popen("echo‘123‘ | sudo -S apt-get install vim",shell=True) #在linux下调用python实现自动输入密码

subprocess模块(代码片段)

subprocess在Windows平台和Linux平台不同Windows平台importsubprocessobj=subprocess.Popen(r‘E:Python学习相关我的博客文件Python正课内容‘,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,)print(obj)#<subprocess.Popen 查看详情

subprocess模块(代码片段)

功能:执行系统指令三种执行方法subprocess.run(*popenargs,input=None,timeout=None,check=False,**kwargs)#官方推荐subprocess.call(*popenargs,timeout=None,**kwargs)#跟上面实现的内容差不多,另一种写法subprocess.Popen()#上面各种方法的底层封装 run()标 查看详情

subprocess模块(****)(代码片段)

Subprocess模块(****)   当我们需要调用系统的命令的时候,最先考虑的os模块。用os.system()和os.popen()来进行操作。但是这两个命令过于简单,不能完成一些复杂的操作,如给运行的命令提供输入或者读取命令的输出,判断... 查看详情

subprocess模块(代码片段)

1.subprocess模块介绍我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python2有os.system,,commands,popen2... 查看详情

subprocess模块(代码片段)

```importos##os.system()#输出命令结果到屏幕,返回命令的执行状态##os.popen("dir").read#会保存命令的执行结果并输出#在linux里面importsubprocesssubprocess.run(["ipconfig","ping192.168.1.1"])#同时执行多条命令subprocess.run("df-h|grepbook",shell=Tru 查看详情

subprocess模块(代码片段)

一、subprocess以及常用的封装函数运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程... 查看详情

模块介绍(代码片段)

subprocess模块它是可以远程操作主机,模拟shell命令‘dir‘是windows上查看任务的命令 importsubprocessobj=subprocess.Popen(‘dir‘,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)#Popen是模拟cmd命令,‘dir‘是windows上查看任务的命令,shel 查看详情

subprocess模块(代码片段)

我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python2有os.system,>>>os.system(‘uname-a‘)Darwin... 查看详情

python3subprocess模块(代码片段)

importsubprocesscmd=input(">>>:")res=subprocess.Popen(cmd,#字符串指令,如dir或ipconfig等等shell=True,#使用shell,就相当于使用cmd窗口stderr=subprocess.PIPE,#标准错误输出,PIPE为管道stdout=subprocess.PIPE,#标准输出)print(res.std 查看详情

subprocess模块(代码片段)

  需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python2有os.system。  执行返回命令执行状态,利用ech... 查看详情

常用模块(subprocess/hashlib/configparser/logging/re)(代码片段)

一、subprocess(用来执行系统命令)importoscmd=r‘dirD:xxx|findstr"py"‘#res=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)##从管道中读取数据管道就是两个进程通讯的媒介##print(type(res.stdout.read().decode 查看详情

python之subprocess模块(代码片段)

...去干别的事,这样就会导致程序的运行效率低下。如果由subprocess去执行系统命令的时候并不会让主进程去执行,而是主进程会开辟出一个子进程去执行,并不会影响到主进程的运行,主进程该干嘛就干嘛,那么又有个问题,大... 查看详情

模拟ssh黏包hashlib模块(代码片段)

一、模拟ssh1、subprocess模块  subprocess模块是python从2.4版本开始引入的模块。主要用来取代一些旧的模块方法,如os.system、os.spawn*、os.popen*、commands.*等。subprocess模块可用于产生进程,并连接到进程的输入/输出/错误输出管道,... 查看详情

补充模块(代码片段)

 struct模块  importstruct#压包res=struct.pack(‘i‘,999999999)print(res)print(len(res))#解包obj=struct.unpack(‘i‘,res)print(obj[0]) subprocess模块importsubprocessres=subprocess.Popen(‘dir‘,s 查看详情

subprocess模块(代码片段)

常用模块学习—subprocess模块详解要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python2有os.system。>>>os... 查看详情

bigger-mai养成计划,subprocess模块(代码片段)

subprocess模块是python从2.4版本开始引入的模块。主要用来取代一些旧的模块方法,如os.system、os.spawn*、os.popen*、commands.*等。subprocess通过子进程来执行外部指令,并通过input/output/error管道,获取子进程的执行的返回信息。常用方法... 查看详情

subprocess模块popen调用命令的使用(代码片段)

...下所有文件目录"""svn_list_cmd="".join(["svn","list",path])res_obj=subprocess.Popen(svn_list_cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,close_fds=True)svn_home_dirs=res_obj.stdout.readlines()returnsvn_home_dirs#注意str转成bytes类型,返回的列表中的元素是bytes类... 查看详情

ssh粘包(代码片段)

 importsubprocess#模块res=subprocess.Popen(cmd.decode(‘utf-8‘),shell=True,#紫色-终端命令stdout=subprocess.PIPE,#输出stdin=subprocess.PIPE,#输出stderr=subprocess.PIPE)#错误stderr=res.stderr.read()stdin=res.stde 查看详情