成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Python執行程序的4種方式,編程必備

開發 后端
在編寫代碼中,經常會遇到在 Python程序中打開外部程序的需求,那么在Python里如何打開外部程序呢?今天我們來介紹四種不同的方式,供大家參考收藏。

在編寫代碼中,經常會遇到在 Python程序中打開外部程序的需求,那么在Python里如何打開外部程序呢?今天我們來介紹四種不同的方式,供大家參考收藏。

使用 os.system()

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

參考以下例子:

用Python執行程序的4種方式,編程必備

通過簡單兩行代碼即可在我的電腦上打開 qq程序,因為我是在MacOS 系統里,所以需要在可執行文件之前加一個open,如果是 windows只需要填寫可執行文件的絕對路徑即可。

現在我們可以調用稍微復雜一點的命令,實現在 Python中調用ping命令:

用Python執行程序的4種方式,編程必備

不過os.system()的缺點是無法獲取調用后的返回結果,只能通過:

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

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

總結起來 system()一共干了三件事情:

  • 從主進程中fork一個子進程。
  • 在子進程中調用python的exec函數去執行命令。
  • 在主進程中調用wait(阻塞)等待子進程結束。

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

使用 os.popen()

os.popen(command) 的調用方式和os.system()類似,不過它是通過創建一個管道的方式來fork子進程實現調用程序的。

用Python執行程序的4種方式,編程必備

我們可以通過讀取popen的返回對象,以便獲取執行結果。

以上代碼我們可以發現對返回對象執行read()方法即可獲取程序執行后的返回結果。

使用 subprocess.open()

subprocess這個模塊在Python用于產生子進程,可以連接子進程的標準輸入輸出,并且可以得到子進程的返回值。

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

用Python執行程序的4種方式,編程必備

subprocess.Popen() 的參數解釋:

用Python執行程序的4種方式,編程必備

以下通過subprocess.Popen() 執行tree命令,樹形結構顯示當前程序路徑下的所有文件和目錄:

用Python執行程序的4種方式,編程必備

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

參考兩個以下例子:

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

Popen()還有更多的高級用法,歡迎參考官方文檔進行學習。

使用subprocess.call()

subporcess模塊還有一個call() 方法,可以用于更加簡單的調用外部命令。

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

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

用Python執行程序的4種方式,編程必備

總結:

  • os.system()用于簡單執行命令,可以顯示執行結果。
  • os.popen()用于簡單執行命令,不能顯示執行結果,可以通過變量返回執行結果。
  • subprocess.Popen() 用于執行復雜命令,可以顯示執行結果,可以設置輸出內容。
  • subprocess.call() 用于執行復雜命令,可以顯示執行結果,可以設置輸出內容。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2010-03-26 14:49:04

Python腳本

2023-11-29 18:06:15

Python設計模式

2016-12-08 10:53:46

程序員編程

2010-03-23 10:29:28

Python程序編譯轉

2022-02-04 22:05:19

JVM程序內存模型

2022-01-11 09:59:23

Python關機程序文件

2022-08-19 11:19:49

單元測試Python

2010-02-02 14:32:32

Python線程編程

2019-11-27 10:36:11

進程通信IPC

2019-12-27 18:07:53

Python網絡爬蟲HTML

2021-05-31 07:01:46

限流算法令牌

2023-11-06 08:15:42

遍歷列表Python

2016-03-28 10:00:09

Swift命令程序

2018-04-28 15:51:33

Mybatis方式傳遞

2013-01-07 10:44:00

JavaScriptjQueryJS

2014-12-31 14:09:23

xml解析

2019-05-16 13:00:18

異步編程JavaScript回調函數

2011-11-17 10:34:44

并行程序

2021-01-12 07:43:13

編程技能編程開發

2020-11-08 14:43:25

Python列表去重編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 人人干人人干人人 | 激情网站在线观看 | 成人欧美在线 | 免费激情网站 | 成人性视频免费网站 | 国产精品成人在线播放 | 国产在线不卡 | 日韩综合在线 | 精品蜜桃一区二区三区 | 97人澡人人添人人爽欧美 | 天天色影视综合 | 91成人在线视频 | 黄色在线观看网站 | 日韩三区在线 | 欧美一区二区三区在线观看视频 | 午夜影视在线观看 | 一级特黄视频 | 一区二区三区 在线 | 一级做a爰片性色毛片16 | 亚洲视频免费观看 | 久久精品a | 欧美午夜激情在线 | 91资源在线| 午夜精品一区二区三区在线观看 | 天天干天天操天天爽 | 欧美午夜剧场 | 久久一区二区精品 | 亚洲精品一区二 | 欧美视频免费在线 | 男人的天堂久久 | 色香蕉在线 | 欧美专区日韩专区 | 美女天天操| 国产91精品久久久久久久网曝门 | 久久精品欧美一区二区三区麻豆 | 午夜免费在线观看 | 欧美激情欧美激情在线五月 | 午夜影院 | 欧美日韩一区二区在线 | 激情网站在线 | 久久久久九九九女人毛片 |