Python中subprocess函式庫的用法介紹

不言
發布: 2018-10-26 17:23:01
轉載
4091 人瀏覽過

這篇文章帶給大家的內容是關於Python中subprocess庫的用法介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

介紹

使用subprocess模組的目的是用來替換os.system等一些舊的模組和方法。

導入模組

>>> import subprocess
登入後複製

指令執行call()

執行參數提供的指令,把陣列當作參數執行命令。其功能類似os.system(cmd)。

>>> subprocess.call(['ls','-l')
登入後複製

其中參數shell預設為False。
在shell設定為True時,可以直接傳送字串:

>>> subprocess.call('ls -l',shell=True)
登入後複製

取得回傳結果check_output()

call()是不回傳顯示的結果的,可以使用check_ouput()來獲得傳回的結果:

>>> result = subprocess.check_output(['ls','-l'],shell=True)
>>> result.decode('utf-8')
登入後複製

進程建立和管理Popen類別

subprocess.popen取代os.popen。可以創建一個Popen類別來創建進程和進行複雜的互動。

建立不等待的子程序

import subprocess
child = subprocess.Popen(['ping','-c','4','www.baidu.com'])
print('Finished')
登入後複製

新增子程序等待

import subprocess
child = subprocess.Popen(['ping','-c','4','www.baidu.com'])
child.wait()  # 等待子进程结束
print('Finished')
登入後複製

新增了wait()後,主進程會等待子進程結束後再執行下面的語句。

子程序文字流控制

標準輸出重定向:

import subprocess
child = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE)    #将标准输出定向输出到subprocess.PIPE
print(child.stdout.read())
登入後複製

使用stdin與其搭配使用:

import subprocess
child1 = subprocess.Popen(['cat','/etc/passwd'],stdout=subprocess.PIPE)
child2 = subprocess.Popen(['grep','root'],stdin=child1.stdout,stdout=subprocess.PIPE)
print child2.communicate()
登入後複製


以上是Python中subprocess函式庫的用法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板