os.system()和os.popen()怎样使用,有哪些细节
Admin 2022-08-11 群英技术资讯 1167 次浏览
今天小编跟大家讲解下有关“os.system()和os.popen()怎样使用,有哪些细节”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。大家搞python与操作系统交互时,必须掌握的两个方法就是os.system()和os.popen(),也是在相关技术领域面试中必问的题目!本文就对这两个命令进行详细介绍,os.system()和os.popen()都可以执行shell命令,但是他们还是有一定的区别的。
话不多说,先拿实例说事儿!
目录/opt/scripts/test 中包括文件:ClassDemo2.groovy ClassDemo.groovy Demo3.groovy pyscript.py
我们执行os.system命令:
>>> os.system('cd /opt/scripts/test;ls')
ClassDemo2.groovy ClassDemo.groovy Demo3.groovy pyscript.py
0
这里的0表示执行成功
接下来再看os.popen命令:
>>> os.popen('cd /opt/scripts/test;ls')
<open file 'cd /opt/scripts/test;ls', mode 'r' at 0x7fa7dd7d1660>
如果想看到具体的值,可以这样使用
>>> f=os.popen('cd /opt/scripts/test;ls')
>>> print(f.readlines())
['ClassDemo2.groovy\n', 'ClassDemo.groovy\n', 'Demo3.groovy\n', ,'pyscript.py\n']
注意如果连续执行多条语句可以使用“;”分割,实例中的cd /opt/scripts/test;ls 就是相关应用。
具体细节如下:
1. 命令被分号“;”分隔,这些命令会顺序执行下去;
2. 命令被“&&”分隔,这些命令会顺序执行下去,遇到执行错误的命令停止;
3. 命令被双竖线“||”分隔,这些命令会顺序执行下去,遇到执行成功的命令停止,后面的所有命令都将不会执行;
os.system方法是os模块最基础的方法,其它的方法一般在该方法基础上封装完成。返回的是退出状态码。os的system原理是每一条system函数执行时,通过当前 Shell 启动的一个新的子进程或子 Shell 被称为 SubShell (子 Shell )。子 Shell 会自动继承父 Shell 的很多环境,如环境变量、工作目录、文件描述符等,但是反之,子 Shell 中的环境仅在子 Shell 中有效,父 Shell 无法读取子 Shell 的环境。例如,如果在父 shell 里定义全局变量,子 shell 中就可以调用该变量。但当在子 shell 中定义一个局部变量时,父 shell 是无法读取该变量的。
os.popen() 方法用于从一个命令打开一个管道,返回的是命令的输出结果。从这个命令获取的值可以继续被使用。因为它返回一个文件对象,可以对这个文件对象进行相关的操作。
popen()方法语法格式:
os.popen(command[, mode[, bufsize]])
参数:
command -- 使用的命令
mode -- 模式权限可以是 'r'(默认) 或 'w'。
bufsize -- 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于终端设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。
返回值:
返回一个文件描述符号为fd(文件索引)的打开的文件对象
如果要直接看到运行结果的话,应该使用os.system;如果需要获取返回值做进一步的处理则使用os.popen
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
enumerate函数用于遍历序列中的元素以及它们的下标,多用于在for循环中得到计数,enumerate参数为可遍历的变量,如 字符串,列表等一般情况
PyNaCI能够提供数字签名、密钥加密、公钥加密、哈希和消息身份验证、基于密码的密钥派生和密码散列功能,这篇文章主要介绍了python密码学库pynacl,感兴趣的朋友一起看看吧
文本给大家分享的关于python实现反转字符串的技巧,这次我们要实现的效果是,将给定的一个字符串中的每个单词,做逐个翻转。那么具体怎么实现呢?下面我们一起来看看。
经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件。本文将用Python制作一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了
python中waitKey()函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环),本文我们来了解python中waitkey函数的用法。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008