Python 的 os 模块

python中os.popen, os.system()区别

os.system的结果只是命令执行结果的返回值,执行成功为0:

>>> a=os.system('ls /')
bin  boot  dev  etc  home  iptv  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
>>> a
0

 

但用os.popen就可以读出执行的内容,popen返回的是file read的对象,对其进行读取使用read(),就可看到执行的输出:

>>> b=os.popen('ls /')
>>> b.read()
'bin\nboot\ndev\netc\nhome\niptv\nlib\nlib64\nlost+found\nmedia\nmnt\nopt\nproc\nroot\nsbin\nselinux\nsrv\nsys\ntmp\nusr\nvar\n'
>>> type(b)
<type 'file'>


>>> b=os.popen('ls /')
>>> b.read().strip('\n')
'bin\nboot\ndev\netc\nhome\niptv\nlib\nlib64\nlost+found\nmedia\nmnt\nopt\nproc\nroot\nsbin\nselinux\nsrv\nsys\ntmp\nusr\nvar'
>>>

>>> b=os.popen('ls /')
>>> type(b.read())
<type 'str'>
>>> type(b)
<type 'file'>
>>>

 

可以看出,输出的结果比较特殊,带换行符\n

b.read().strip('\n')  去掉最后的换行符

 

posted @ 2019-02-22 10:17  马克图  阅读(83)  评论(0)    收藏  举报