#!/usr/bin/env python#-*- coding: utf-8 -*-

'''subprocess:提供执行系统相关命令的功能'''

importsubprocess#call 执行命令,返回状态码:0为执行成功

ret = subprocess.call(["ls", "-l"], shell=False) #shell为false时,命令为列表形式

ret = subprocess.call("ls -l", shell=True) #shell为True时,命令可以直接执行

#check_call 执行命令,如果执行状态码是 0 ,则返回0,否则抛异常

subprocess.check_call(["ls", "-l"])

subprocess.check_call("exit 1", shell=True)#check_output 执行命令,如果状态码是 0 ,则返回执行结果,否则抛异常

subprocess.check_output(["echo", "Hello World!"])

subprocess.check_output("exit 1", shell=True)#subprocess.Popen(...) 用于执行复杂的系统命令#

#参数:#args:shell命令,可以是字符串或者序列类型(如:list,元组)#bufsize:指定缓冲。0 无缓冲,1 行缓冲,其他 缓冲区大小,负值 系统缓冲#stdin, stdout, stderr:分别表示程序的标准输入、输出、错误句柄#preexec_fn:只在Unix平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用#close_sfs:在windows平台下,如果close_fds被设置为True,则新创建的子进程将不会继承父进程的输入、输出、错误管道。#所以不能将close_fds设置为True同时重定向子进程的标准输入、输出与错误(stdin, stdout, stderr)。#shell:同上#cwd:用于设置子进程的当前目录#env:用于指定子进程的环境变量。如果env = None,子进程的环境变量将从父进程中继承。#universal_newlines:不同系统的换行符不同,True -> 同意使用 \n#startupinfo与createionflags只在windows下有效#将被传递给底层的CreateProcess()函数,用于设置子进程的一些属性,如:主窗口的外观,进程的优先级等等

ret1= subprocess.Popen(["mkdir","t1"])

ret2= subprocess.Popen("mkdir t2", shell=True)#终端输入的命令分为两种:#输入即可得到输出,如:ifconfig#输入进行某环境,依赖再输入,如:python

obj= subprocess.Popen("mkdir t3", shell=True, cwd='/home/dev',)#********************************************************************

obj= subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

obj.stdin.write("print(1)\n")

obj.stdin.write("print(2)")

obj.stdin.close()

cmd_out=obj.stdout.read()

obj.stdout.close()

cmd_error=obj.stderr.read()

obj.stderr.close()print(cmd_out)print(cmd_error)#********************************************************************

obj= subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

obj.stdin.write("print(1)\n")

obj.stdin.write("print(2)")

out_error_list=obj.communicate()print(out_error_list)#********************************************************************

obj= subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

out_error_list= obj.communicate('print("hello")')print(out_error_list)

python获取maco句柄_python之subprocess模块相关推荐

  1. python echo(msg) 字符串_python的subprocess模块

    1 os与commands模块 2 subprocess模块 3 subprocess.Popen类 我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的shell. ...

  2. python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...

    有些时候,我们需要将某些程序放到子进程中去运行,以达到整合系统的目的.在Python中,一个非常好的选择就是使用subprocess模块,本模块为开辟子进程去执行子程序提供了统一的接口,更加便于学习和 ...

  3. python 提取网关信息_python:使用netifaces模块获取本机IP网关等信息

    python获取本机IP有很多种方法,可每种方法都有局限性. 使用netifaces模块获取本机IP网关等信息,需要安装netifaces模块,不管windows还是linux都可以通用. 一.程序: ...

  4. python 获取浏览器句柄下的网页控件_python webdriver操作浏览器句柄

    断言 assert self.driver.title.find(u"搜狗搜索引擎")>=0, "assert error" 浏览器后退,前进,前进前要先 ...

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

    一.subprocess模块 subprocess英文意思:子进程 那什么是进程呢? (一)关于进程的相关理论基础知识 进程是对正在运行程序的一个抽象,进程的概念起源于操作系统,是操作系统最核心的概念 ...

  6. python中执行shell脚本之subprocess模块

    一. 最近subprocess使用背景和介绍 因为最近领导要求,在Python端调用大数据的shell脚本,所以需要用到Python来执行shell脚本, 因此需要查看下subprocess模块文档. ...

  7. python获取控制台输出_Python | 用Python获取Windows控制台输出

    1 os模块实现 import os cmd = 'ping baidu.com' r = os.popen(cmd) for line in r.readlines(): print (line) ...

  8. python写日志文件_Python logging日志模块 配置文件方式

    在一些微服务或web服务中我们难免需要日志功能,用来记录一些用户的登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等; Python内置 非常强大的日志模块 ==> logging 今 ...

  9. python修改mac地址_python利用_winreg模块制作MAC地址修改工具

    通过百度搜索知道,xp下修改MAC地址的方法主要有两个,一种是通过配置本地链接属性来实现,这种方法不适合用程序来完成,另一种是通过修改注册表来完成,本程序主要是利用了这种方法. 具体方法:Window ...

最新文章

  1. pytorch 模型可视化_PyTorch Tips(FLOPs计算/参数量/计算图可视化/相关性分析)
  2. 1万条数据大概占多大空间_9月漫画数据月报丨多平台评论数,收藏数较上月大幅下降...
  3. 【详解】CPU执行算术运算或逻辑运算时,常将源操作数和结果暂存在()中
  4. 数据科学与python语言——Pandas统计分析基础(时间转换+聚合)
  5. 利用 Python 写一个颜值测试小工具
  6. BOSS直聘上线春雷行动 首周吸引上万名应届生参与活动
  7. css模拟select设置高度在ie67下有效(也可作为去除边框)
  8. 数据库管理系统属于计算机应用,数据库管理系统属于应用软件吗?
  9. Tomcat发布项目后JS中文乱码
  10. 计算机三级考点一:宽带城域网的结构
  11. SCP不会覆盖已有文件
  12. 关于单片机电路中NPN三极管与PNP三极管的接法问题
  13. c语言中 让小球 发射小球,小球发射问题求大神解决(让小球向鼠标蓄力方向发射)...
  14. 大数据时代的安全威胁
  15. 记录:手机邮箱格式验证
  16. Android 智能遥控器源码,基于Android手机的智能遥控器设计
  17. 微信小程序--优购商城项目(4)
  18. uniapp 小于1000 按原数字显示 超过1000 数字换算成10w+ 1.3k+ 显示
  19. MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery
  20. 应用层协议 HTTP HTTPS

热门文章

  1. linux修改权限重启恢复,Linux错误执行:chmod 777 .*或chown -R * 的补救方法
  2. linux系统无线驱动在哪下载,在linux上怎么安装无线网卡驱动?
  3. RuntimeError: Found dtype Double but expected Float”
  4. python最大公约数
  5. python walk 遍历文件夹 文件大小
  6. listdir完整路径
  7. log_softmax
  8. CrowdHuman 测试
  9. python条件赋值
  10. 'unicodeescape' codec can't decode bytes in position 16-17: malformed \N character escape