學習啦>學習電腦>電腦安全>系統(tǒng)安全>

Python怎么調用系統(tǒng)命令

時間: 黎正888 分享

  Python經常被稱作“膠水語言”,因為它能夠輕易地操作其他程序,輕易地包裝使用其他語言編寫的庫。在Python/wxPython環(huán)境下,執(zhí)行外部命令或者說在Python程序中啟動另一個程序的方法,下面就讓學習啦小編教大家Python怎么調用系統(tǒng)命令。

  Python調用系統(tǒng)命令的方法

  1、os.system(command)

  os.system()函數用來運行shell命令。此命令可以方便的調用或執(zhí)行其他腳本和命令

  #打開指定的文件 >>>os.system('notepad *.txt')

  這個調用相當直接,且是同步進行的,程序需要阻塞并等待返回。返回值是依賴于系統(tǒng)的,直接返回系統(tǒng)的調用返回值,所以windows和Linux是不一樣的。

  2、wx.Execute(command, syn=wx.EXEC_ASYNC, callback=None)

  若置syn為wx.EXEC_ASYNC則wx.Excute函數立即返回,若syn=wx.EXEC_SYNC則等待調用的程序結束后再返回。

  callback是一個wx.Process變量,如果callback不為None且syn=wx.EXEC_ASYNC,則程序結束后將調用wx.Process.OnTerminate()函數。

  os.system()和wx.Execute()都利用系統(tǒng)的shell,執(zhí)行時會出現shell窗口。如在Windows下會彈出控制臺窗口,不美觀。下面的兩種方法則沒有這個缺點。

  3、import subprocess

  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)

  subprocess.call(["cmd", "arg1", "arg2"],shell=True)

  Note:

  1. 參數args可以是字符串或者序列類型(如:list,元組),用于指定進程的可執(zhí)行文件及其參數。

  2. 如果command(args)不是一個可執(zhí)行文件,shell=True不可省。否則如copy\del命令可能會出現FileNotFoundError錯誤。

  3. Popen.wait()可以得到命令的返回值

  4. 如果是windows下的命令,則文件路徑如果用的是linux格式會報錯:The syntax of the command is incorrect.

  舉個栗子

  if subprocess.Popen('dir /b %s' % filename, shell=True).wait() == 0

  如果filename字符串中有空格,則會出現錯誤:File Not Found錯誤

  可以通過下面["cmd", "arg1", "arg2"]兩種方式

  if subprocess.Popen(["dir", "/b", filename], shell=True).wait() == 0

  if subprocess.call(["dir", "/b", filename], shell=True) == 0

  [Python中subprocess學習]

  4、webbrowser.open(url)

  前面三個方法只能用于執(zhí)行程序和打開文件,不能處理URL,打開URL地址可用webbrowser模塊提供的功能。

  調用系統(tǒng)缺省瀏覽器打開URL地址,如 webbrowser.open('http://www.jb51.NET'),也可以利用

  webbrowser.open('h:\python.zip')來執(zhí)行程序。這樣可以不必區(qū)分是文件名還是URL,不知道在Linux下是否可行。

  以上在Windows2000,Python2.4a1,wxPython 2.5.1運行。

  [python調用shell的方法]

  5. os.popen(command[,mode[,bufsize]])

  舉個栗子

  >>> import os

  >>> p = os.popen("dir c:", 'r')

  >>> p.read()

  bla bla... <這里是dir正確的輸出>

  >>> p.close()

  >>> p = os.popen("dir d:", 'r') # 電腦中沒有D盤

  >>> p.read()

  ''

  >>> p.close()

  1

  >>>

  可以看出,popen方法通過p.read()獲取終端輸出,而且popen需要關閉close().當執(zhí)行成功時,close()不返回任何值,失敗時,close()返回系統(tǒng)返回值. 可見它獲取返回值的方式和os.system不同。

  6. 使用commands模塊

  舉個栗子

  >>> import commands

  >>> commands.getstatusoutput('ls /bin/ls')

  (0, '/bin/ls')

  >>> commands.getstatusoutput('cat /bin/junk')

  (256, 'cat: /bin/junk: No such file or directory')

  >>> commands.getstatusoutput('/bin/junk')

  (256, 'sh: /bin/junk: not found')

  >>> commands.getoutput('ls /bin/ls')

  '/bin/ls'

  >>> commands.getstatus('/bin/ls')

  '-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'

  根據你需要的不同,commands模塊有三個方法可供選擇。getstatusoutput, getoutput, getstatus。

Python怎么調用系統(tǒng)命令相關文章

1.Linux系統(tǒng)常用命令合集

2.unix和linux密碼丟失怎么辦

3.android重要知識點總結

4.python版本低怎么升級

5.Linux命令行中網速怎么測試

Python怎么調用系統(tǒng)命令

Python經常被稱作膠水語言,因為它能夠輕易地操作其他程序,輕易地包裝使用其他語言編寫的庫。在Python/wxPython環(huán)境下,執(zhí)行外部命令或者說在Python程序中啟動另一個程序的方法,下面就讓學習啦小編教大家Python怎么調用系統(tǒng)命令。 Pyt
推薦度:
點擊下載文檔文檔為doc格式

精選文章

  • Python的系統(tǒng)命令有哪些
    Python的系統(tǒng)命令有哪些

    ython具有易讀、易學、易維護、可移植性、跨平臺等特點而深受歡迎,并在最近幾年迅速崛起。下面就讓學習啦小編教大家Python的系統(tǒng)命令,希望對大家有

  • 怎么取消shutdown的系統(tǒng)重啟命令
    怎么取消shutdown的系統(tǒng)重啟命令

    shutdown命令很容易搜到,但是重啟命令shutdown的取消卻有時不靈,怎么辦呢?下面就讓學習啦小編教大家取消shutdown的系統(tǒng)重啟命令。 取消shutdown系統(tǒng)重啟命令

  • 蘋果系統(tǒng)怎么打開命令行
    蘋果系統(tǒng)怎么打開命令行

    蘋果系統(tǒng)同樣擁有命令執(zhí)行程序,下面就讓學習啦小編教大家如何打開蘋果系統(tǒng)的命令性。 蘋果系統(tǒng)命令行的打開方法一 我們這里先介紹通過圖形方式打

  • WIN7怎么打開系統(tǒng)命令提示符
    WIN7怎么打開系統(tǒng)命令提示符

    經常使用Windows系統(tǒng),就會發(fā)現通過Windows的窗口界面并不是能完成所有操作,有時還必須使用命令提示符,在其中執(zhí)行相應的命令才能完成相應的操作。那

1753473