乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
python 3.030 调用bash subprocess 模块
2017-07-04 13:12:07
20
0
0
admin
> 产生一个子进程,活动它的输出和返回值 #傻瓜模式,使用被封装好的函数 ``` #!/bin/bash echo echo_stdout1 echo echo_stderr 1>&2 echo echo_stdout2 exit 2 ``` ``` #!/usr/bin/python import subprocess print "1===================================================" result = subprocess.check_call(["date","+%s"]) #获得命令返回值 #result = subprocess.check_call("date +%s",shell=True) #不建议这样做 print result print "2===================================================" try: result = subprocess.check_call("./a.sh") except Exception,message: #如果返回值非0,触发异常 print message.returncode print message.cmd print message.output #仅支持check_output,这里是None print message print "2===================================================" result = subprocess.check_output(["date","+%s"]) #获得标准输出 print result ``` *** #高级用法 ``` #!/bin/bash echo echo_stdout1 echo echo_stderr 1>&2 sleep 5 echo echo_stdout2 exit 2 ``` ``` #!/usr/bin/python import subprocess result = subprocess.Popen(["./a.sh"],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) print "poll==>",result.poll() #查看进程跑完了没,跑完返回其返回值,否则None #result.terminate() #结束进程 #result.send_signal(2) #给进程发信号 print "wait==>",result.wait() #等到进程结束,返回其返回值 print "stdout==>",result.stdout.read() #查看标准输出,是个文件对象 print "stderr==>",result.stderr.read() #查看错误输出,是个文件对象 print "pid==>"+str(result.pid) #进程id print "returncode==>"+str(result.returncode) #进程返回值 ```
上一篇:
python 3.02 sys 模块
下一篇:
python 3.031 commands 模块
文档导航