国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

調用系統命令

2019-11-14 17:42:32
字體:
來源:轉載
供稿:網友

1、簡單的調用

1.1 os.system

import osos.system('dir')

dir產生的屏顯將直接出現在當前的屏幕上。
返回值和執行環境有關。如果是windows的cmd.exe環境,返回值是狀態碼。0代表成功,1代表失敗。比如,如果不小心敲錯了,把dir寫成了ddir,那么由于找不到這條命令,返回碼會是1。

1.2 subPRocess.call

import subprocesssubprocess.call('dir',shell=True)

效果同上。
因為dir是cmd.exe的內置命令,所以需指出shell=True,強調這條命令要被放在shell(cmd.exe)中執行的。如果這個參數缺失,dir會被當做一般的可執行文件直接調用,由于找不到名為dir的可執行文件,會報錯。

1.3 subprocess.Popen

import subprocesssubprocess.Popen('dir',shell=True)

這個和上一條基本是等價的。不同之處在于,call返回的是狀態碼,而Popen返回的是一個進程對象,這個對象可以有更高級的用途,下面將說到。

2、捕獲屏幕輸出

2.1 Popen.stdout

如果想檢查一下執行過程中的屏顯,而不是直接拋給用戶,那就涉及到Popen的高級用途了

from subprocess import Popen, PipEp = Popen("dir", shell=True, stdout=PIPE)output = p.stdout.read() #捕獲屏顯,而不是直接顯示給用戶print output

這里PIPE就是一個常量,等于-1。將其賦給參數stdout有一個特殊的含義,那就是將執行所產生的屏顯重新定向到Popen.stdout。
Popen.stdout是一個管道對象,可以通過read、readline等方法讀取管道的內容。

3、進一步交互

3.1 Popen.communicate

如果調用程序之后還需要進行輸入輸出的交互,那么就要用到communicate函數。
下面的代碼先打開一個cmd.exe進程,然后在其中執行dir命令,然后捕獲輸出。

from subprocess import Popen, PIPEp = Popen("cmd.exe", stdin=PIPE, stdout=PIPE, stderr=PIPE) #打開一個cmd.exeoutput,err = p.communicate('dir/n') #輸入dir命令,同時捕獲輸出print outputprint err

communicate接收一個參數,作為輸入。返回兩個值,分別是stdout和stderr的內容。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 什邡市| 青阳县| 盐城市| 清涧县| 车致| 汉源县| 博兴县| 嵊泗县| 兰州市| 岳普湖县| 江西省| 锦州市| 亳州市| 砀山县| 梁河县| 新昌县| 呼图壁县| 云龙县| 滨州市| 邛崃市| 延吉市| 巴彦县| 天全县| 岚皋县| 福建省| 湘潭市| 商都县| 含山县| 集安市| 嘉荫县| 车险| 彭泽县| 广宗县| 邯郸县| 景宁| 宁河县| 叙永县| 东丽区| 农安县| 利川市| 萨迦县|