python腳本調用外部程序的若干種方式以及利弊


腳本執行外部程序的常用幾種方式:

# os.popen(path)
# subprocess.run(cmd,shell=True)
# subprocess.check_call(cmd,shell = True)
# os.system(command)
# win32api.ShellExecute(0, 'open', path, '', '', 0)

 

os.popen(path) 和 os.system(command)

這兩種執行的效果是差不多的,都通過CMD把程序跑起來,然而他們啟動都可能會彈出CMD的黑框,注意是可能!,有些程序不會

看效果圖:

 

 

subprocess.check_call(path) subprocess.call(path), subprocess.run(path)

這三種方式需要導subprocess庫
這三種方式啟動外部程序是在代碼運行到此行時進入阻塞,等到外部程序運行結束才會繼續往下執行
此處還有一個非常奇怪的現象:

 
        

 

在pycharm里通過這三種方式打開QQ.EXE,點擊結束程序時會把QQ進程也關掉,QQ登陸后再點結束是不會被關的

疑問待后期有資料再補充

 

另外一種不太常見的方式就是

win32api.ShellExecute(0, 'open', path, '', '', 0)

這種方式是我目前用得最舒服的一種,特點是:1.不阻塞當前進程,2.關閉當前腳本不影響被開啟程序的執行

但是需要注意的是,用它需要安裝win32api庫,可以自行網上搜資料下載

 

 

資料不全,純手碼,還望能幫到同仁們!謝謝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM