subprocess in python3.5

subprocess

该子模块允许你创建新的流程,连接到它们的输入/输出/错误管道,并获取他们的返回值。该模块打算替换多个旧的模块和功能:os.system   和  os.spawn *

使用subprocess时建议使用run()函数去处理所有它可以处理的情况,因为高级用法可以直接使用底层POPEN接口。

run()函数是Python 3.5中新添加的。

使用方法:

subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False)

args    该参数用于启动进程。这可能是一个列表或一个字符串。

returncode   该参数表示子进程的退出状态。

通常情况下,0作为退出状态表明它成功运行。

负值-N表明子进程被信号N终止(仅POSIX)。

stdout  该参数表示标准输出

从子过程中捕获标准输出。一个字节序列,或字符串 ()如果运行一个字符串被称为与universal_newlines = TRUE。无如果stdout没有抓获。

如果您运行进程与标准错误= subprocess.STDOUT,输出和错误将在此属性相结合,和stderr将是无。

标准错误

从子过程中捕获标准错误。一个字节序列,或()如果运行一个字符串被称为与universal_newlines = TRUE。无标准错误,如果没有抓获。

check_returncode()

如果返回码不为零,养CalledProcessError。

先看个例子:

>>> import subprocess

>>> subprocess.run(["ls"])

run_server.py    # ls命令返回的结果

CompletedProcess(args=[‘ls‘], returncode=0)  # run函数返回的结果

>>> subprocess.run(["ls", "-l"])  # 这个和上面的类似

总用量 4

-rw-r--r-- 1 root root 266 9月  22 14:35 run_server.py

CompletedProcess(args=[‘ls‘, ‘-l‘], returncode=0)

>>> subprocess.run(["ls"],stdout=subprocess.PIPE)  # 加上stdout参数之后,系统命令返回的结果就不会输出了

CompletedProcess(args=[‘ls‘], returncode=0, stdout=b‘run_server.py\n‘)

>>> a = subprocess.run(["ls"],stdout=subprocess.PIPE)

>>> print(a)

CompletedProcess(args=[‘ls‘], returncode=0, stdout=b‘run_server.py\n‘)

>>> print(a.stdout,a.args,a.returncode)  # 可以对返回值进行操作

b‘run_server.py\n‘ [‘ls‘] 0

null

时间: 2024-10-24 23:58:16

subprocess in python3.5的相关文章

python学习道路(day7note)(subprocess模块,面向对象)

1.subprocess模块   因为方法较多我就写在code里面了,后面有注释 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #linux 上调用python脚本 5 #os.system输出命令结果到屏幕,返回命令执行状态 6 #os.popen("dir") 返回内存对象,需要单独去取一下 7 #os.popen("dir").read() 保存命令的执行结果输出,但是不返回执行状态 8 # 9 10 #p

Python模块-subprocess模块

Run()方法 >>> a = subprocess.run(['df','-h']) 文件系统 容量 已用 可用 已用% 挂载点 udev 468M 0 468M 0% /dev tmpfs 98M 7.4M 91M 8% /run /dev/sda1 39G 5.0G 32G 14% / tmpfs 488M 216K 488M 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 488M 0 488M 0% /sys/fs/cgr

Python基础-subprocess模块

我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python2有os.system, >>> os.system('uname -a') Darwin Alexs-MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: Sun Jun 4 21:43:07 PDT 2017; root:xnu-3

python 关于操作文件的相关模块(os,sys,shutil,subprocess,configparser)

一:os模块 os模块提供了许多允许你程序与操作系统直接交互的功能 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录

python重要模块之subprocess模块

python重要模块之subprocess模块 我们经常要通过python去执行系统的命令或者脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就相当于发起了一个新的进程,通过python调用系统命令或脚本的模块. 之前我们也学到过和系统交互的模块-os模块 In [1]: import os In [2]: os.system('uname -a') Linux host-10-200-137-195 3.10.0-693.21.1.el7.x86_64 #1 SM

Python之路(第二十篇) subprocess模块

一.subprocess模块 subprocess英文意思:子进程 那什么是进程呢? (一)关于进程的相关理论基础知识 进程是对正在运行程序的一个抽象,进程的概念起源于操作系统,是操作系统最核心的概念,操作系统的其他所有内容都是围绕进程的概念展开的. 所以想要真正了解进程,必须事先了解操作系统. 程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以

Python之subprocess模块的使用

1.subprocess调用系统的命令 #!/usr/bin/env python # -*- coding: utf-8 -*- import subprocess import sys completed = subprocess.run(['ls',sys.argv[1],'-l']) print('运行结果',completed.returncode) subprocess_os_system.py 运行效果 [[email protected] mnt]# python3 subpro

模块 subprocess 交互shell

subprocess 交互shell 执行shell命令, 与操作系统交互 三种执行命令的方法 subprocess.run(*popenargs, input=None, timeout=None, check=False, **kwargs) #官方推荐 subprocess.call(*popenargs, timeout=None, **kwargs) #跟上面实现的内容差不多,另一种写法 subprocess.Popen() #上面各种方法的底层封装 1.run()方法 标准写法 su

python常用内置模块

Subprocess模块 python3.5将使用Subprocess模块跟操作系统进行交互,比如系统命令,他将替换 os.system os.spawn* subprocess.run()方法封装的subprocess.Popen() subprocess.run()方法只在3.5中才有2.7中有一个subprocess.call()方法 >>> subprocess.call(['df','-lh']) Filesystem     Size   Used  Avail Capaci