Python的學習(八)----py指令碼中呼叫應用程式
Python的學習(八)----py指令碼中呼叫應用程式
在Python指令碼執行過程中,如需要執行另一個程式,或執行相關命令時,一般有幾種方法:
1. os.system(command)
在子終端中執行系統命令command, 在命令執行完後退出並返回執行狀態。無法捕捉命令執行過程返回的具體資訊
2. os.popen(command, type)
開啟一個與command程式之間的管道,並返回命令執行後的資訊物件,並通過type指定管道流的方向,來讀或寫命令的執行結果
說明:os.system 與 os.popen 均能執行系統命令,二者之間的區別在於返回資訊
system只能返回執行後的狀態資訊,popen則可以通過物件訪問獲取執行結果,例如:
>>> import os
>>> p = os.system('ls')
>>> p
0
>>> p = os.popen('ls').readlines()
>>> p
Out[10]:
['test.c\n',
'conf.ini\n',
....
3. subprocess.popen
subprocess模組可以建立新的程式,通過與新建程式的相關管道(輸入、輸出等)連通,可獲取命令執行的返回 狀態,
其意在取代現有的os.system os.popen等函式, 主要提供一個類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)
Popen類中有Popen.stdin, Popen.stdout, Popen.stderr三個相關屬性分別表示子程式的標準輸入、輸出、錯誤,可通過屬性實現與子程式通訊
eg: subprocess.Popen(command, shell=True, stdin=subprocess.PIPE)
4. win32api模組
Python本身是沒有自帶訪問windows系統API庫的,需自己下載名為pywin32的庫檔案並安裝後,
1. ShellExecute
匯入win32api模組後,運用ShellExecute()函式來執行其他程式
eg:import win32api
ShellExecute(hwnd, ip, file, params, dir, bShow)
2. CreateProcess
為了便於控制通過指令碼執行的程式,可通過使用CreateProcess()函式執行
CreateProcess(appName, commandLine , processAttributes , threadAttributes , bInheritHandles ,dwCreationFlags , newEnvironment , currentDirectory , startupinfo )
說明:有了已建立程式的控制程式碼就可以使用win32api.TerminateProcess來結束程式
相關文章
- py指令碼得到Python的版本指令碼Python
- 如何呼叫python中的shell指令碼?Python指令碼
- Python 指令碼中呼叫 Java 程式時 Classpath 錯誤Python指令碼Java
- Vue原始碼學習(八):生命週期呼叫Vue原始碼
- 呼叫Frame中的指令碼指令碼
- Python 呼叫py檔案Python
- python 如何執行子層 py 指令碼Python指令碼
- Python程式py程式碼加密方法Python加密
- 在python程式中呼叫java程式碼PythonJava
- java中呼叫groovy指令碼Java指令碼
- shell指令碼中的變數及應用指令碼變數
- 9、在Shell指令碼中呼叫其他指令碼指令碼
- 清除過期日誌的py指令碼指令碼
- 在Watir中呼叫JavaScript指令碼JavaScript指令碼
- 使用shell指令碼在Linux中管理Java應用程式指令碼LinuxJava
- 用於管理應用程式得shell指令碼指令碼
- Python指令碼應用及學習方法-CSDN公開課-專題視訊課程Python指令碼
- 指令碼學習指令碼
- Linux/Unix shell 指令碼中呼叫SQL,RMAN指令碼Linux指令碼SQL
- python學習-判斷閏年指令碼Python指令碼
- Python程式設計學習第八課之Python中的變數和關鍵字Python程式設計變數
- 如何在batch指令碼中嵌入python程式碼BAT指令碼Python
- 在loadrunner中呼叫QTP指令碼QT指令碼
- python利用or在列表解析中呼叫多個函式.pyPython函式
- 深度學習在OC中的應用深度學習
- js呼叫執行exe應用程式程式碼例項JS
- Per指令碼學習指令碼
- ASM 學習 指令碼ASM指令碼
- 資料庫環境中的shell指令碼應用資料庫指令碼
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- BeanShell桌面---Java應用程式指令碼引擎 (轉)BeanJava指令碼
- C# 程式碼中呼叫 Javascript 程式碼段以提高應用程式的配置靈活性(使用 Javascript .NET 與 Jint)C#JavaScript
- java呼叫python程式碼JavaPython
- 簡述遷移學習在深度學習中的應用遷移學習深度學習
- 如何在 Deno 應用程式中呼叫 Rust 函式Rust函式
- 常用指令碼學習手冊——Bat指令碼指令碼BAT
- 用 Python 指令碼發現 OpenStack Overcloud 中的問題Python指令碼Cloud
- 用Python進行機器學習(附程式碼、學習資源)Python機器學習