前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 之 shell命令执行

python 之 shell命令执行

作者头像
py3study
发布2020-01-14 14:21:27
1.2K0
发布2020-01-14 14:21:27
举报
文章被收录于专栏:python3python3

python中有几种常用的执行shell命令的模块

1,os.system()

2, os.popen()

3,pexpect.run()

下面介绍3个模块的差别

1,os.system()

 直接执行

>>> os.system('ls /tmp')

hsperfdata_root scim-panel-socket:0-root

0

可以看到这里多出了1个0., 这里的0 并不是文件,上面2个才是文件, 0 表示执行状态,0 为执行成功,  非0 表示执行失败

所以这这种执行方式,是不能获取执行命令后的输出结果的,只能做一些无返回执行的操作

2,os.popen

执行

>>> os.popen('ls /tmp')

<open file 'ls /tmp', mode 'r' at 0x2b64d90aa990>

>>> a=os.popen('ls /tmp')

>>> print a

<open file 'ls /tmp', mode 'r' at 0x2b64d90aa918>

可以看出来输入的是一个链接地址

要看到执行的结果,需要

>>> a=os.popen('ls /tmp')

>>> print a.read()

hsperfdata_root

scim-panel-socket:0-root

这个,是可以获取到执行后的输入结构的,但是无法判断是否执行成功

3,pexpect.run

执行

>>> (output,status)=pexpect.run('ls /tmp',withexitstatus=1)

>>> print output

hsperfdata_root scim-panel-socket:0-root

>>> print status

0

可以看到,这里可以获得输出接口,也可以判断命令是否执行成功

0表示执行成功,非0 表示执行失败

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档