运行linux命令并返回结果
参考:https://www.cnblogs.com/yyds/p/7288916.html
命令行指令的执行通常有两个我们比较关注的结果:
- 命令执行的状态码——表示命令执行是否成功
- 命令执行的输出结果——命令执行成功后的输出
一、os与commands模块
函数名 | 描述 |
---|---|
os.system(command) | 返回命令执行状态码,而将命令执行结果输出到屏幕 |
os.popen(command).read() | 可以获取命令执行结果,但是无法获取命令执行状态码 |
commands.getstatusoutput(command) | 返回一个元组(命令执行状态码, 命令执行结果) |
说明:
- os.popen(command)函数得到的是一个文件对象,因此除了read()方法外还支持write()等方法,具体要根据command来定;
- commands模块只存在于Python 2.7中,且不支持windows平台,因此commands模块很少被使用。另外,commands模块实际上也是通过对os.popen()的封装来完成的。
示例:os.popen
import oscommand = 'cat %s |grep -n "%s"' %(file_path, pn)
result = os.popen(command).read()
print(result)
总结
根据python版本选择对应的模块:
版本 | 模块 |
Python 2.4 - Python 3.5 | subprocess.call() |
Python 3.5及以上 | subprocess.run() |
- Python2.4版本引入了subprocess模块用来替换os.system()、os.popen()、os.spawn*()等函数以及commands模块;也就是说如果你使用的是Python 2.4及以上的版本就应该使用subprocess模块了。
- 如果你的应用使用的Python 2.4以上,但是是Python 3.5以下的版本,Python官方给出的建议是使用subprocess.call()函数。Python 2.5中新增了一个subprocess.check_call()函数,Python 2.7中新增了一个subprocess.check_output()函数,这两个函数也可以按照需求进行使用。
- 如果你的应用使用的是Python 3.5及以上的版本(目前应该还很少),Python官方给出的建议是尽量使用subprocess.run()函数。
- 当subprocess.call()、subprocess.check_call()、subprocess.check_output()和subprocess.run()这些高级函数无法满足需求时,我们可以使用subprocess.Popen类来实现我们需要的复杂功能。
运行linux命令并返回结果相关推荐
- 如何在后台运行 Linux 命令
Linux 命令是使用终端与系统交互的好方法.但是,有时可能需要一段时间才能完成手头的任务.这迫使用户等待相当长的时间或完全生成一个新的 shell. 幸运的是,您可以通过一些简单的方法在后台运行 L ...
- Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义
Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义以及linux命令执行返回值意义 (1) Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义说明 1.1.简要说明 ps: ...
- linux命令:返回上一次目录
返回上一次目录 有时候千辛万苦进入了一个很深层的目录,一不小心输入了cd并回车,有什么办法快速回到刚才所在的目录呢?对于bash来说,只需要很管理的一个命令: cd - 该命令等同于cd $OLDPW ...
- Android在Shell环境下运行Linux命令
Android的底层其实linux,所以可以在android shell下运行linux命令,尤其是经过root处理的Android系统,基本上可以通过调用linux命令完全操作手机,下面的RootC ...
- linux 命令 抛后台,在后台运行Linux命令的方法
通常情况下,当你在终端运行一个命令,在你开始输入另外一个命令之前,你必须等待当前命令运行结束.这被称为在前台运行命令,或者前台进程.当一个进程在前台运行时,它占用了你的 shell,并且你可以通过输入 ...
- linux钟java运行命令,在java中运行linux命令
我想在java中运行"ls"命令,我的代码是- 注意: - 我正在使用WINDOWS.在java中运行linux命令 import java.io.IOException; pub ...
- java运行linux命令程序_Java程序执行Linux命令
java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...
- win7下运行linux命令,win7系统32位旗舰版iso运行linux shell脚本的操作办法
win7旗舰版是用户量最大的一款操作系统:有不少人在使用中都遇见了win7系统运行linux shell脚本的问题,对于电脑不太熟悉的朋友面对win7系统运行linux shell脚本便无计可施,其实 ...
- 手机怎样运行linux命令行,不仅是命令行 Windows 10 也可以运行 Linux 的图形界面程序了...
微软在 Build 2016 上宣布这个新闻后,很快就在其发布的 Insider 预览版 14316 上将这个功能展示给了迫不及待的粉丝们.根据微软当前的技术说明,目前除了部分命令行程序不能运行之外, ...
最新文章
- arraylist切割_JAVA List和Map切割工具详解
- 2013-12-7 在超市给思杨买东西-思杨踢球
- leetcode 101. 对称二叉树 递归解法 c语言
- 全球及中国碳化硅 (SiC) 肖特基二极管行业竞争潜力与供应规划研究报告2022版
- jenkins+Docker+springcloud微服务持续集成
- 推荐系统可利用的特征
- [zz] 使用ssh公钥密钥自动登陆linux服务器
- 计算并输出1000以内的所有“完数”之和
- kafka监听topic消费_Kafka消费者-从Kafka读取数据
- 使用实时摄像头预览的iOS对象检测(六)
- Debian中安装VMware-tools
- ftp上传乱码_ftp同步图片到本地文件夹,ftp同步图片到本地文件夹的实现步骤
- 柯马机器人示教器编程_柯马机器人示教器C5G-TP5WC CR17910085全新原装进口现货销售...
- 上传文件中文乱码问题修复
- 计算机网络冲突窗口,计算机网络基础试题及答案
- Linux使用Wget实现整站下载
- 推荐一个不错的在线制图网站---ProcessOn
- JavaEE简易聊天室(Netbeans:Servlet+Cookie+Session)
- 大数据对人们生活的积极影响_大数据对生活带来的影响
- 某精英枪战游戏辅助脚本加密破解
热门文章
- Ubuntu搭建DTN2仿真平台(详细过程记录)
- 机器学习初学者_面向初学者的5个最佳机器学习项目
- 【转载】【缺陷预防技术】自动错误预防(AEP)
- L2TP LAC initial 配置与安全策略
- python文章抄袭检测_怎样用Python检测抄袭行为?广大中小学生们的美梦就此结束...
- python蝴蝶代码_ProE常用曲線方程:Python Matplotlib 版本代碼(蝴蝶曲線)
- 递归思想解决下楼梯问题
- 【OPENGLWEBGL】将OpenGL里的gluProject和gluUnProject函数web化
- 谷歌Chrome浏览器开启多线程下载
- 美术资源标准(纹理篇)