您好,登錄后才能下訂單哦!
本篇內容介紹了“python怎么運行cmd命令”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1、使用os.system()方法
os.system用來執行cmd指令,在cmd輸出的內容會直接在控制臺輸出,返回結果為0表示執行成功。
示例代碼:
# coding:utf-8import os os.system("ls")
PS:os.system()方法是簡單粗暴的執行cmd指令,沒有辦法獲取到cmd輸出的內容。
PPS:os.system()方法在調用完shell腳本后,返回一個16位的二進制數,低位為殺死所調用腳本的信號號碼,高位為腳本的退出狀態碼,即腳本中“exit 1”的代碼執行后,os.system函數返回值的高位數則是1,如果低位數是0的情況下,則函數的返回值是0x0100,換算為十進制得到256。
2、使用os.popen()方法
os.popen()方法用于從一個命令打開一個管道。在Unix,Windows中有效。os.popen返回的是一個file對象,同open打開文件一樣操作。
popen()方法語法格式如下:
os.popen(command[, mode[, bufsize]])
參數:
command – 使用的命令。 mode – 模式權限可以是 ‘r'(默認) 或 ‘w'。 bufsize – 指明了文件需要的緩沖大小:0意味著無緩沖;1意味著行緩沖;其它正值表示使用參數大小的緩沖(大概值,以字節為單位)。負的bufsize意味著使用系統的默認值,一般來說,對于tty設備,它是行緩沖;對于其它文件,它是全緩沖。如果沒有改參數,使用系統的默認值。
示例代碼:
# coding:utf-8import os# popen返回文件對象,同open操作一樣f = os.popen(r"ls", "r") l = f.read()print(l) f.close()
返回值是文件對象的推薦處理方法:
with os.popen(cmd, "r") as p: r = p.read()
使用它,不需要顯式的寫p.close()。
PS:os.popen()方法是非阻塞的。
3、使用subprocess.Popen()
python2.4版本后,提供了subprocess這個模塊來產生子進程,并且可以連接到子進程的標準輸入、輸出、錯誤中,還可以獲得子進程的返回值。
subprocess.Popen()的定義如下:
class subprocess.Popen( args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
其參數意義在此不贅述。一段簡單的示例代碼:
# coding:utf-8import subprocess p = subprocess.Popen("ls", shell=True, stdout=subprocess.PIPE) r = p.stdout.read()print(r)
PS:subprocess提供了2種方法調用子程序。subprocess.call()是阻塞式的,subprocess.Popen()是非阻塞的。
“python怎么運行cmd命令”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。