Python3中的subprocess.check_output函数可以执行一条sh命令,并返回命令的输出内容,用法如下:

output = subprocess.check_output(["python3", "xx.py"], shell = False)

该函数两个参数第一个表示命令内容,因为中间有空格所以用中括号这种形式,同时制定shell=False表示命令分开写了。而该命令执行后的输出内容会返回给output变量。

需要注意的是这个output变量并不是一个string,也就是说不能用string的一些函数,比如你想知道返回的输出中是否包含某个字符串:

output = subprocess.check_output(["python3", "xx.py"], shell = False)
if (output.find("yes") >= 0): print("yes")
else: print("no")

这样执行后不会有任何输出,因为find()函数是给string用的,而这里的output其实不是一个string,那它是个什么呢?

我们看看python3的subprocess.check_output的文档:

By default, this function will return the data as encoded bytes. The actual encoding of the output data may depend on the command being invoked, so the decoding to text will often need to be handled at the application level.

也就是说,返回的其实是一个编码后的比特值,实际的编码格式取决于调用的命令,因此python3将解码过程交给应用层,也就是我们使用的人来做。

这样就清晰了,要对输出使用stirng的操作,需要先通过解码将其转换成string:

output = subprocess.check_output(["python3", "xx.py"], shell = False)
out = output.decode()
if (out.find("yes") >= 0): print("yes")
else: print("no")

这样就可以正常判断了。

Python subprocess.check_output 执行shell命令 返回结果(单次执行shell命令)相关推荐

  1. JAVA多线程执行,等待返回结果,再执行

    JAVA多线程执行,等待返回结果,再执行 1.实现callable接口 1)配置线程池 package com.neusoft.demo.server.config;import org.spring ...

  2. python执行linux命令返回结果_Python中调用Linux命令并获取返回值

    方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于she ...

  3. adb shell读取返回值_android代码执行adb shell终端命令(linux命令)并返回执行结果...

    在做Android开发板相关的开发需求的时候,我们有的时候需要去到Android系统的一个linux终端(adbshell)里面来执行一些命令,以便于查看部分文件内容或者修改部分文件权限等需求,通常我 ...

  4. mysql存储过程执行动态sql返回结果,mysql存储过程执行动态sql语句并返回值

    Java代码 set @sql='xxx'; prepare stmt from @sql; execute stmt; deallocate prepare stmt; select @curd1; ...

  5. mysql基础命令返回上一级_MySQL基础 — 常用命令

    一.连接MySQL 格式:mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MySQ: 首先在打开cmd窗口,输入mysql -uroot -p ,然后空格进入MySQL控制台,M ...

  6. Python 技术篇-通过管道命令获取cmd执行的结果,获取os.system()、subprocess.Popen()执行命令返回的结果

    正常的 os.system() 执行完后只会返回个执行状态值,返回的 0 表示执行成功,1 表示执行失败. 如果想要获取到执行后的结果集,就需要用到管道命令 os.popen(),然后用 read() ...

  7. system函数的返回值和执行脚本的返回值

    1.先统一两个说法: (1)system返回值:指调用system函数后的返回值,比如上例中status为system返回值 (2)shell返回值:指system所调用的shell命令的返回值,比如 ...

  8. 关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值...

    关于ExecuteNonQuery执行存储过程的返回值 用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过. if(cmd.ExecuteNonQuery("xxx ...

  9. linux mount 指定用户名,mount命令怎么用?Linux版mount命令完全使用手册

    mount命令完全使用手册 介绍 工欲善其事,必先利其器.mount是UNIX/Linux系统管理员不可不会的命令.在Linux,UNIX和类似操作系统上,不同分区和可移动设备上的文件系统(例如CD, ...

最新文章

  1. excel文件无法打印提示内存不足_三星打印机无法扫描文件?来看看她的详细解决办法...
  2. MySQL 5.6--------SSL连接最佳实战
  3. php strncmp函数用法,strncmp函数用法详解
  4. 如何把数据在A表空间里面,把它IMP进B表空间
  5. java 手写缓存,java手写多级缓存
  6. JDK8中的新时间API:Duration Period和ChronoUnit介绍
  7. 20155301 Exp4 恶意代码分析
  8. 转载博客:generic netlink 编程快速入门
  9. Soul Api 网关发布 1.0.3-RELEASE 版本
  10. mac 安装mysql5.7_mac 安装 mysql 5.7
  11. WORD图、表标号——题注
  12. apple tv 开发_如何在Apple TV上禁用Siri和定位服务
  13. 《互联网的那些事之时代》第一回:大梦谁先觉,平生我自知
  14. 【专题复习】极值点 拐点 驻点
  15. MIPI CSI-2笔记(12) -- Low Level Protocol(数据加扰,扰码,Data Scrambling)
  16. 苹果safari浏览器 button点击不会触发focus事件 如何解决?
  17. 前端机器学习——线性回归
  18. 无法写入最后一个_影驰擎 GA-E 16TB SSD评测:3.96TB持续稳定写入,你想要的大容量来了...
  19. 数字图像处理与应用——半色调技术
  20. 2018校招笔试真题汇总(java/C++)

热门文章

  1. Nat Commun|单细胞ATAC-seq深度学习工具包AtacWorks,简单、高效且适用
  2. Acoustica 7 Premium Edition for Mac(音频处理软件) v7.3.28
  3. 在Mac上唤出「快速备忘录」的开启与关闭设置教程
  4. 蓝桥杯青少创意编程python组
  5. P1414 又是毕业季II (80分 python3实现)
  6. PHPMailer目录和命名空间没有错,但是始终class not found,的原因和解决方法
  7. 华为交换机eth口作用_华为S5700交换机如何配置ETH-交换机怎么设置
  8. java out.flush_java中基本输入输出流的解释(flush方法的使用)
  9. mooc作业怎么上传附件_交作业的一二三
  10. Windows破解逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)