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

首頁 > 編程 > Python > 正文

Python subprocess模塊功能與常見用法實(shí)例詳解

2020-02-15 22:05:50
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python subprocess模塊功能與常見用法。分享給大家供大家參考,具體如下:

一、簡介

subprocess最早在2.4版本引入。用來生成子進(jìn)程,并可以通過管道連接他們的輸入/輸出/錯(cuò)誤,以及獲得他們的返回值。

subprocess用來替換多個(gè)舊模塊和函數(shù):

os.system os.spawn* os.popen* popen2.* commands.*

運(yùn)行python的時(shí)候,我們都是在創(chuàng)建并運(yùn)行一個(gè)進(jìn)程,linux中一個(gè)進(jìn)程可以fork一個(gè)子進(jìn)程,并讓這個(gè)子進(jìn)程exec另外一個(gè)程序。在python中,我們通過標(biāo)準(zhǔn)庫中的subprocess包來fork一個(gè)子進(jìn)程,并且運(yùn)行一個(gè)外部的程序。subprocess包中定義有數(shù)個(gè)創(chuàng)建子進(jìn)程的函數(shù),這些函數(shù)分別以不同的方式創(chuàng)建子進(jìn)程,所欲我們可以根據(jù)需要來從中選取一個(gè)使用。另外subprocess還提供了一些管理標(biāo)準(zhǔn)流(standard stream)和管道(pipe)的工具,從而在進(jìn)程間使用文本通信。

二、舊有模塊的使用

1.os.system()

執(zhí)行操作系統(tǒng)的命令,將結(jié)果輸出到屏幕,只返回命令執(zhí)行狀態(tài)(0:成功,非 0 : 失敗)

import os>>> a = os.system("df -Th")Filesystem   Type  Size Used Avail Use% Mounted on/dev/sda3   ext4  1.8T 436G 1.3T 26% /tmpfs     tmpfs  16G   0  16G  0% /dev/shm/dev/sda1   ext4  190M 118M  63M 66% /boot>>> a0     # 0 表示執(zhí)行成功# 執(zhí)行錯(cuò)誤的命令>>> res = os.system("list")sh: list: command not found>>> res32512    # 返回非 0 表示執(zhí)行錯(cuò)誤

2. os.popen()

執(zhí)行操作系統(tǒng)的命令,會將結(jié)果保存在內(nèi)存當(dāng)中,可以用read()方法讀取出來

import os>>> res = os.popen("ls -l")# 將結(jié)果保存到內(nèi)存中>>> print res<open file 'ls -l', mode 'r' at 0x7f02d249c390># 用read()讀取內(nèi)容>>> print res.read()total 267508-rw-r--r-- 1 root root  260968 Jan 27 2016 AliIM.exe-rw-------. 1 root root   1047 May 23 2016 anaconda-ks.cfg-rw-r--r-- 1 root root  9130958 Nov 18 2015 apache-tomcat-8.0.28.tar.gz-rw-r--r-- 1 root root     0 Oct 31 2016 badblocks.logdrwxr-xr-x 5 root root   4096 Jul 27 2016 certs-builddrwxr-xr-x 2 root root   4096 Jul 5 16:54 Desktop-rw-r--r-- 1 root root   2462 Apr 20 11:50 Face_24px.ico

三、subprocess模塊

1、subprocess.run()

>>> import subprocess# python 解析則傳入命令的每個(gè)參數(shù)的列表>>> subprocess.run(["df","-h"])Filesystem      Size Used Avail Use% Mounted on/dev/mapper/VolGroup-LogVol00           289G  70G 204G 26% /tmpfs         64G   0  64G  0% /dev/shm/dev/sda1       283M  27M 241M 11% /bootCompletedProcess(args=['df', '-h'], returncode=0)# 需要交給Linux shell自己解析,則:傳入命令字符串,shell=True>>> subprocess.run("df -h|grep /dev/sda1",shell=True)/dev/sda1       283M  27M 241M 11% /bootCompletedProcess(args='df -h|grep /dev/sda1', returncode=0)            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 延川县| 伊通| 白玉县| 寻甸| 永兴县| 鄯善县| 云阳县| 漳浦县| 兴义市| 呼和浩特市| 正镶白旗| 沧州市| 宁海县| 平陆县| 罗田县| 云霄县| 八宿县| 枣庄市| 比如县| 城步| 牙克石市| 江安县| 闻喜县| 定远县| 和顺县| 卓尼县| 龙岩市| 泰宁县| 东平县| 邓州市| 芜湖县| 呼伦贝尔市| 沽源县| 曲阳县| 陆丰市| 张家港市| 遂宁市| 中西区| 分宜县| 防城港市| 八宿县|