python 之 外部程式的呼叫

2021-09-29 21:40:20 字數 1977 閱讀 6591

1.python常用的外部程式呼叫方法之os.system(command) 相當於在 shell 中執行 command 指令 ,簡單來說 ,在 只要字串可以在 l shell 中執行 , 就可,以將其作為 os.system 在 的引數,在 python 檔案中執行系統命令。

參照下面**

import os

deffoo1

(command)

: os.system(command)

#相當於在shell中執行command 指令

print

('畫板使用完畢'

)foo1(

'mspaint'

)#

2.值得一提的是 m os.system 是阻塞式呼叫,也就是說當系統命令執行完成之前,**執行會一直阻塞在

m os.system 上 這一行不會往下執行,如果想要避免這種阻塞式呼叫的發生,可以在引數前加上 start ,例如

像這樣呼叫,即為非阻塞式,見下面**。

import os

deffoo1

(command)

: os.system(command)

#相當於在shell中執行command 指令

print

('程式已退出'

)foo1(

'start mspaint'

)

3.os.system 有返回值 , 0代表shell 執行成功,返回1代表shell 執行失敗,返回 2 代表 lshell 命令在執行的過程中遇到系統錯誤

import os

deffoo1

(command)

: ret=os.system(command)

#相當於在shell中執行command 指令

print

(ret)

print

('程式已退出'

)foo1(

'mspaint'

)#

subprocess 是python乙個內建模組,咋os.system 之上更加強化,該模組幫我們生成新的程序,鏈結到他們的輸入/輸出/錯誤 等通道,反回值等通道**

1.subprocess.check_output(command)

subprocess.check_output(command),使用引數執行命令,並將其輸出作為位元組字串返回 , 需要等到被呼叫程式退

出才能返回,相當於是阻塞式呼叫

import subprocess

deffoo1

(command)

: ret=subprocess.check_output(command)

print

(ret)

print

('程式已退出'

)foo1(

'mspaint'

)```

**2.subprocess.popen() 是在新的進行中代開子程式,所以不會阻塞原程序的執行,即非阻塞式呼叫,也就是說

python 待 **無需等待 shell 命令執行結束即可繼續向下執行。如果想要等待,可以呼叫 wait 方法**,可以分別執行下面兩段**,檢視差異

```python

import subprocess

child=subprocess.popen(

'mspaint'

)print

('hello subproess'

)

import subprocess

child=subprocess.popen(

'mspaint'

)child.wait(

)print

('hello subproess'

)

Python呼叫(執行)外部程式

在python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的 為了更好地控制執行的程序,可以使用win32process模組中的函式。如果想進一步控制程序,則可以使用ctype模組,直接呼叫kernel32.d...

Python呼叫(執行)外部程式

1 使用os.system函式執行其他程式 2 使用shellexecute函式執行其他程式 3 使用createprocess函式執行其他程式 4 使用ctypes呼叫kernel32.dll中的函式 1 使用os.system函式執行其他程式 os模組中的system 函式可以方便地執行其他程式...

Python呼叫(執行)外部程式

在python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的 為了更好地控制執行的程序,可以使用win32process模組中的函式。如果想進一步控制程序,則可以使用ctype模組,直接呼叫kernel32.d...