日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
用Python執(zhí)行程序的4種方式,編程必備

在編寫(xiě)代碼中,經(jīng)常會(huì)遇到在 Python程序中打開(kāi)外部程序的需求,那么在Python里如何打開(kāi)外部程序呢?今天我們來(lái)介紹四種不同的方式,供大家參考收藏。

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷(xiāo),專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、電商網(wǎng)站制作開(kāi)發(fā)、微信小程序開(kāi)發(fā)、微信營(yíng)銷(xiāo)、系統(tǒng)平臺(tái)開(kāi)發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開(kāi)發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷(xiāo)的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!

使用 os.system()

os.system(command)是最簡(jiǎn)單的一種方式,我們import os模塊,并調(diào)用它的system() 方法即可。

參考以下例子:

通過(guò)簡(jiǎn)單兩行代碼即可在我的電腦上打開(kāi) qq程序,因?yàn)槲沂窃贛acOS 系統(tǒng)里,所以需要在可執(zhí)行文件之前加一個(gè)open,如果是 windows只需要填寫(xiě)可執(zhí)行文件的絕對(duì)路徑即可。

現(xiàn)在我們可以調(diào)用稍微復(fù)雜一點(diǎn)的命令,實(shí)現(xiàn)在 Python中調(diào)用ping命令:

不過(guò)os.system()的缺點(diǎn)是無(wú)法獲取調(diào)用后的返回結(jié)果,只能通過(guò):

os.system("ping www.baidu.com > result.txt") 這樣的方式把結(jié)果管道輸出到本地文件里。

system的返回值只會(huì)有0(成功),1和2表示失敗。

總結(jié)起來(lái) system()一共干了三件事情:

  • 從主進(jìn)程中fork一個(gè)子進(jìn)程。
  • 在子進(jìn)程中調(diào)用python的exec函數(shù)去執(zhí)行命令。
  • 在主進(jìn)程中調(diào)用wait(阻塞)等待子進(jìn)程結(jié)束。

如果 對(duì)于fork失敗,system()函數(shù)返回-1。

使用 os.popen()

os.popen(command) 的調(diào)用方式和os.system()類(lèi)似,不過(guò)它是通過(guò)創(chuàng)建一個(gè)管道的方式來(lái)fork子進(jìn)程實(shí)現(xiàn)調(diào)用程序的。

我們可以通過(guò)讀取popen的返回對(duì)象,以便獲取執(zhí)行結(jié)果。

以上代碼我們可以發(fā)現(xiàn)對(duì)返回對(duì)象執(zhí)行read()方法即可獲取程序執(zhí)行后的返回結(jié)果。

使用 subprocess.open()

subprocess這個(gè)模塊在Python用于產(chǎn)生子進(jìn)程,可以連接子進(jìn)程的標(biāo)準(zhǔn)輸入輸出,并且可以得到子進(jìn)程的返回值。

以下是subprocess.Popen()模塊的參數(shù)定義:

subprocess.Popen() 的參數(shù)解釋:

以下通過(guò)subprocess.Popen() 執(zhí)行tree命令,樹(shù)形結(jié)構(gòu)顯示當(dāng)前程序路徑下的所有文件和目錄:

Popen的參數(shù)可以是字符串(string),也可以是列表(list)。

參考兩個(gè)以下例子:

 
 
 
  1. subprocess.Popen(["cat","test.md"]) 
  2. subprocess.Popen("cat test.txt", shell=True) 

Popen()還有更多的高級(jí)用法,歡迎參考官方文檔進(jìn)行學(xué)習(xí)。

使用subprocess.call()

subporcess模塊還有一個(gè)call() 方法,可以用于更加簡(jiǎn)單的調(diào)用外部命令。

 
 
 
  1. subprocess.call (*popenargs , **kwargs ) 

call的使用方法和Popen基本一致,沒(méi)有太大的區(qū)別,在這里只是多介紹一種使用方式。

總結(jié):

  • os.system()用于簡(jiǎn)單執(zhí)行命令,可以顯示執(zhí)行結(jié)果。
  • os.popen()用于簡(jiǎn)單執(zhí)行命令,不能顯示執(zhí)行結(jié)果,可以通過(guò)變量返回執(zhí)行結(jié)果。
  • subprocess.Popen() 用于執(zhí)行復(fù)雜命令,可以顯示執(zhí)行結(jié)果,可以設(shè)置輸出內(nèi)容。
  • subprocess.call() 用于執(zhí)行復(fù)雜命令,可以顯示執(zhí)行結(jié)果,可以設(shè)置輸出內(nèi)容。

當(dāng)前題目:用Python執(zhí)行程序的4種方式,編程必備
URL標(biāo)題:http://m.5511xx.com/article/djoedhi.html