Subprocess,python3 subprocess模块

  Subprocess,python3 subprocess模块

  子过程模块简介

  战略事业单位过程简介子过程模块可以执行系统命令,该模块允许用户创建一个新的进程,该进程会连接到输入输出错误管道并获取到返回的状态码。

  子过程包含的子类本文版本是以python3.6为准,其它版本请参考官方手册。

  子流程。运行子流程。run(args,*,stdin=None,input=None,stdout=None,stderr=None,shell=False,cwd=None,timeout=None,check=False,encoding=None,errors=None,env=None)

  参数:我们要执行的命令。值可以是字符串、列表、元组、如果是字符串,则该命令不可以加命令选项,否则会报错。如果需要加命令选项则必须设置shell=True。

  输入:这个参数不知道干嘛用的,该参数会被传递给通信(输入,超时=超时),然后该函数将投入传递给标准输入,然后就不知道了。

  标准输入:标准输入。

  标准输出:标准输出。

  标准错误:标准错误。

  cwd:执行命令的路径。

  超时:超时时间,单位:秒。

  检查:如果该值为真实的且进程返回非0的状态码,将触发CalledProcessError异常,该异常的属性会保存参数、过程状态码、stuout、stderr。

  编码:指定打开标准输入、标准输出、标准错误的编码方式,如果不指定默认是以二进制的方式打开。

  环境:设置环境变量,让命令在该环境下运行。

  示例:

  # 基本的使用

  导入子流程

  ret=subprocess.run([ls ,/home/test],stdout=subprocess .管道,标准错误=子进程。管道,编码=utf-8 )

  打印(退休)

  # 打印结果如下

  CompletedProcess(args=[ls ,/home/test],returncode=0,stdout=abc\ntest.txt\n ,stderr= )

  # 使用字符串的命令就要将shell=True

  导入子流程

  ret=子流程。run( ls/home/test ,shell=True,stdout=subprocess .管道,标准错误=子进程。管道,编码=utf-8 )

  打印(退休)

  # 打印结果如下

  已完成的进程(args= ls/home/test ,returncode=0,stdout=abc\ntest.txt\n ,stderr= )

  # 如我们只想看命令结果

  导入子流程

  ret=子流程。run( ls/home/test ,shell=True,stdout=subprocess .管道,标准错误=子进程。管道,编码=utf-8 )

  打印(ret.stdout)

  # 打印结果如下

  字母表

  测试。文本文件(textfile)

  # 使用切换目录的功能

  导入子流程

  ret=subprocess.run(ls -l ,cwd=/home/test ,shell=True,stdout=subprocess .管道,标准错误=子进程。管道,

  编码=utf-8 ,校验=真)

  打印(ret.stdout)

  # 打印结果如下

  总用量0

  drwxr-xr-x 2根根6 4月18时09分22秒字母表

  -rw-r - r - 1根根0 4月24 11:02 test.txt

  # 捕获异常

  导入子流程

  尝试:

  ret=子流程。run( ls/home/tst ,shell=True,stdout=子进程.管道,标准错误=子进程。管道,编码=utf-8 ,检查=真)

  例外情况为e:

  打印(五)

  # 打印结果如下

  命令 ls /home/tst 返回非零退出状态2。待续。。。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: