python脚本调用外部程序的若干种方式以及利弊
生活随笔
收集整理的這篇文章主要介紹了
python脚本调用外部程序的若干种方式以及利弊
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
腳本執(zhí)行外部程序的常用幾種方式:
# 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)
這兩種執(zhí)行的效果是差不多的,都通過(guò)CMD把程序跑起來(lái),然而他們啟動(dòng)都可能會(huì)彈出CMD的黑框,注意是可能!,有些程序不會(huì)
看效果圖:
?
?
subprocess.check_call(path) subprocess.call(path), subprocess.run(path)這三種方式需要導(dǎo)subprocess庫(kù)
這三種方式啟動(dòng)外部程序是在代碼運(yùn)行到此行時(shí)進(jìn)入阻塞,等到外部程序運(yùn)行結(jié)束才會(huì)繼續(xù)往下執(zhí)行
此處還有一個(gè)非常奇怪的現(xiàn)象:
?
在pycharm里通過(guò)這三種方式打開(kāi)QQ.EXE,點(diǎn)擊結(jié)束程序時(shí)會(huì)把QQ進(jìn)程也關(guān)掉,QQ登陸后再點(diǎn)結(jié)束是不會(huì)被關(guān)的
疑問(wèn)待后期有資料再補(bǔ)充
?
另外一種不太常見(jiàn)的方式就是
win32api.ShellExecute(0, 'open', path, '', '', 0)這種方式是我目前用得最舒服的一種,特點(diǎn)是:1.不阻塞當(dāng)前進(jìn)程,2.關(guān)閉當(dāng)前腳本不影響被開(kāi)啟程序的執(zhí)行
但是需要注意的是,用它需要安裝win32api庫(kù),可以自行網(wǎng)上搜資料下載
?
?
資料不全,純手碼,還望能幫到同仁們!謝謝
?
轉(zhuǎn)載于:https://www.cnblogs.com/dongxixi/p/10829263.html
總結(jié)
以上是生活随笔為你收集整理的python脚本调用外部程序的若干种方式以及利弊的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 列Readonly的问题
- 下一篇: centOS安装python3.7.2