subprocess模块来执行shell

  1. subprocess 官网:
    subprocess

  2. 使用方式
    run()方法来实现子进程调用优先选用
    Popen()虽然强大但是存在阻塞问题

run()
import subprocess
import shlex
# 需要执行的命令
command_line = "ls -al /usr"
# 命令格式化
args = shlex.split(command_line)
# 执行命令进程
a=subprocess.run(args,shell=True,stdout=subprocess.PIPE)
# 打印命令输出的信息
print(str(a.stdout.decode(encoding='utf-8')))
Popen()
subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)


import subprocess
import shlex
# 需要执行的命令
command_line = "ls -al /usr"
# 命令格式化
args = shlex.split(command_line)
# 执行命令进程
run=subprocess.run(args,shell=True,stdout=subprocess.PIPE)
# 等待进程结束
run.wait() 
# 返回状态
print(str(run.returncode))

run.kill()
杀死这个子进程。

run.stdin 
在创建run对象时,参数stdin设置为subprocess.PIPE时run.stdin会返回一个文件对象用于对这个子进程发送指令。否则返回None。

run.stdout 
在创建run对象时,参数stdout设置为subprocess.PIPE时run.stdout将返回一个文件对象来返回子进程执行结果信息,否则返回 None。

run.stderr 
如果在创建Popen对象是,参数stdout被设置为PIPE,Popen.stdout将返回一个文件对象来返回子进程执行失败的错误信息。否则返回 None。

run.pid 
获取子进程的进程ID。
run.poll() 
用于检查子进程是否已经结束,设置并返回returncode属性。
run.wait() 
等待子进程结束,设置并返回returncode属性
run.returncode 
获取进程的返回值,如果进程还没有结束,返回None

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值