python执行系统命令的方法
做为系统工程师来说,经常会用到python脚本去调用一下系统命令,现把经常使用的集中调用方法总结如下:
一,os.system(command)
在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这个函数执行命令的结果无法保存,只能显示在标准输出。但是,命令执行是否成功的退出状态可以通过变量得到,非0即为不正常。
例:
>>> os.system('ls /tmp')
hsperfdata_root supervisor.sock tmp_fifo
0
>>> code=os.system('ls /tmp')
hsperfdata_root supervisor.sock tmp_fifo
>>> print code
0
二,os.popen(command[, mode[, bufsize]])
打开一个与command进程之间的管道,函数的返回值是一个连接到管道的文件对象,故可以对文件做读写操作(由mode决定rw,mode默认是’r',)。bufsize指定了文件期望的buffer大小,0意味着不是用buffer,1意味着line buffered(行缓冲),负值意味着使用系统默认行为,正值意味着按设定的num值开辟buffer空间;一般终端相关的设备输出用行缓冲,对文件相关输出用全缓冲;默认情况下,buffer是全缓冲,加快了文件读取速度减少了上下文切换。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。
例:
>>> f=os.popen('ls /tmp')
>>> f.readlines()
['hsperfdata_root\n', 'supervisor.sock\n', 'tmp_fifo\n']
三,subprocess
第一种:
subprocess.call(["some_command","some_argument","another_argument_or_path"])
与os.system的功能相同。
第二种:
subprocess.Popen(command,shell=True)
已子进程的方式去执行命令,然后返回代表新进程的Popen对象。他可以与新建进程的输入/输出/错误管道联通,并可以获得新建进程执行的返回状态等。使用subprocess模块主要目的就是来替代之前的os,popen,commands等函数或模块。
例:
执行基本的系统命令,直接输出结果
>>> ret = subprocess.call('ls /tmp',shell=True)
hsperfdata_root supervisor.sock tmp_fifo
执行系统命令,但是捕捉输出
>>> f = subprocess.Popen('ls /tmp',shell=True,stdout=subprocess.PIPE)
>>> print f.stdout.readlines()
['hsperfdata_root\n', 'supervisor.sock\n', 'tmp_fifo\n']
创建2个子进程,通过管道把他们连接起来。一个进程的输出作为另一个进程的输入
>>> f = subprocess.Popen('ls -l',shell=True,stdout=subprocess.PIPE)
>>> p = subprocess.Popen('wc', shell=True, stdin=f.stdout, stdout=subprocess.PIPE)
>>> print p.stdout.readlines()
[' 73 652 4161\n']
四,commands
commands模块用于执行以字符串形式指定的简单系统命令,并将其输出以字符串形式返回,仅使用于unix系统。
第一种:
getoutput(cmd)
在shell中执行cmd,返回包含命令标准输出和标准错误流的字符串。
getstatusoutput(cmd)
与getoutput类似,差别在于返回的是二元组(status,output)
例:
>>> out=commands.getoutput('ls /tmp')
>>> print out
hsperfdata_root
supervisor.sock
tmp_fifo
>>> status,out=commands.getstatusoutput('ls /tmp')
>>> print status,out
0 hsperfdata_root
supervisor.sock
tmp_fifo
转载于:https://blog.51cto.com/leejia/1439031
python执行系统命令的方法相关推荐
- python执行系统命令的方法_python执行系统命令的方法 :os.system(),subprocess.popen(),command...
最近接触到os.system(),subprocess.popen()和commands来执行系统命令,从网上搜索到许多,现整理如下. 1. 使用os.system("cmd") ...
- python执行系统命令的方法:subprocess
适用于Python3 subprocess 可以执行shell命令的相关模块和函数有: os.system os.spawn os.popen –废弃 popen2.* –废弃 commands.* ...
- Python执行系统命令的方法 os.system(),os.popen(),commands
最近在做那个测试框架的时候发现 Python 的另一个获得系统执行命令的返回值和输出的类. 最开始的时候用 Python 学会了 os.system() 这个方法是很多比如 C,Perl 相似的. o ...
- 使用Python执行系统命令方法
Python是一款操作简单的编程语言,内置丰富的库,能够很容易的实现强大的功能,在使用Python进行框架搭建时,往往需要用到Python执行系统命令,一些开发人员对此不熟悉,以下是具体的操作方法: ...
- php禁用了所有命令执行的函数 怎么搞,PHP通过bypass disable functions执行系统命令的方法汇总...
一.为什么要bypass disable functions 为了安全起见,很多运维人员会禁用PHP的一些"危险"函数,例如eval.exec.system等,将其写在php.in ...
- python执行系统命令后获取返回值的几种方式集合
第一种情况 os.system('ps aux') 执行系统命令,没有返回值 第二种情况 result = os.popen('ps aux') res = result.read() for lin ...
- 【初学】python执行系统命令四种方法比较
Python中执行系统命令常见的几种方法有 注意:以下实例代码在Python3.5下运行通过. 一.os.system方法 os.system(cmd) 在子终端运行系统命令,可以获取命令执行后的返回 ...
- python常用指令-日常整理python执行系统命令的常见方法(全)
具体内容如下: 1 os.system 例如 ipython中运行如下命令,返回运行状态status os.system('cat /etc/passwdqc.conf') min=disabled, ...
- Python执行系统命令的四种方法
一.os.system方法 在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态.执行后返回两行结果,第一行是结果, 第二行是执行状态信息,如果命令成功执行,这条语句返回0,否则返回1 ...
最新文章
- 天线决定接受频率_对讲机天线到底有多重要?通讯效果好不好要靠它!
- java程序设计颜志军_JSP 自定义标签之一 简单实例
- anaconda 命令
- ajax post提交数据_详解Ajax异步加载
- Spring 事务相关及@Transactional的使用建议
- sqlserver可视化工具_数据分析之基础分析工具篇(修订版)
- 安卓音频输出采样率_如何调好OBS Studio的音频设置 进阶篇
- 面向对象练习——校园管理系统
- 系统自带不起眼但很强杀毒工具
- 惠普计算机如何改启动,惠普台式电脑u盘启动BIOS怎么设置
- this product is covered by one or more of the following
- HDMI的DDC是什么
- 标准SPI、DUAL SPI、Quad SPI;NorFlash、NandFlash、eMMC闪存的比较与区别
- latex段落悬挂缩进_使用正则表达式在Java中悬挂缩进段落
- 微信吸粉技巧:微信群怎么玩?
- 比SQL还好用,又一门国产数据库语言诞生了
- 【技术类】Landsat 7 ETM+影像条带去除妙招
- php mysql图片存储_PHP-mysql存储照片的两种方式
- 如何在PC桌面上添加便笺
- 一套适用于所有老板的营销方案,让他一个月就卖出3780箱红酒!