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

Posted 大鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中os.popen, os.system()区别相关的知识,希望对你有一定的参考价值。

直接上个例子吧,注意结果,os.system的结果只是命令执行结果的返回值,执行成功为0:

1
2
3
4
5
6
7
8
9
10
>>> a=os.system(‘ls‘)
Applications             Movies                   python-oldboy
Applications (Parallels) Music                    python3.sublime-build
Desktop                  Pictures                 rpro.log
Documents                Public                   test.py
Downloads                PycharmProjects          test.pyc
GitHub_source            Python_Assignment
Library                  oradiag_shane
>>> a
0

可以看到,a为0

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

1
2
3
4
5
6
>>> b=os.popen(‘ls‘)
>>> b.read()
‘Applications Applications (Parallels) Desktop Documents Downloads GitHub_source Library Movies Music Pictures Public PycharmProjects Python_Assignment oradiag_shane python-oldboy python3.sublime-build rpro.log test.py test.pyc ‘
>>> type(b)
<class ‘os._wrap_close‘>
>>>

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

以上是关于python中os.popen, os.system()区别的主要内容,如果未能解决你的问题,请参考以下文章

python os.system、os.popen、subprocess.Popen的区别

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

python os.system()和os.popen()

Python os.popen() 方法

python os.popen 出错

Python面试高频问题: os.system()和os.popen()的区别