1. 程式人生 > >python中os.popen, os.system()區別

python中os.popen, os.system()區別

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