python中os.popen, os.system()區別
阿新 • • 發佈:2018-12-11
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\nApplications (Parallels)\nDesktop\nDocuments\nDownloads\nGitHub_source\nLibrary\nMovies\nMusic\nPictures\nPublic\nPycharmProjects\nPython_Assignment\noradiag_shane\npython-oldboy\npython3.sublime-build\nrpro.log\ntest.py\ntest.pyc\n'
>>>
type
(b)
<
class
'os._wrap_close'
>
>>>
|
可以看出,輸出的結果比較特殊,帶換行符\n