腳本執行外部程序的常用幾種方式:
# 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庫,可以自行網上搜資料下載
資料不全,純手碼,還望能幫到同仁們!謝謝