這篇文章帶給大家的內容是關於python中subprocess類與常數的詳細介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
常數
subprocess.DEVNULL:可傳遞給stdin, stdout, stderr參數的特殊值,意味著將使用特殊檔案os.devnull重定向輸入輸出
subprocess .PIPE:可傳遞給stdin, stdout, stderr參數的特殊值,意味著使用管道重定向輸入輸出
subprocess.STDOUT:可傳遞給stderr參數的特殊值,表示重定向標準錯誤到標準輸出
Popen
在一個新的行程中執行子程式。
建構參數
(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell =False, cwd=None, env=None, universal_newlines=None, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=(), *, encoding=None.
args:字串或序列。如果是序列,則args中的第一個元素是要執行的程式;如果是字串,解釋執行與平台有關,在POSIX系統args將被解釋為要執行的程式的名稱或路徑(前提是不傳遞任何參數給程序)。
shell:指定是否使用shell作為要執行的程式。如果設定為True,則更推薦和字串類型的args參數使用。
在POSIX系統,shell=True預設使用/bin/sh
作為shell。如果args為字串,則字串表示要透過shell執行的命令;如果args為序列,第一個元素指定要執行的程序,則其他元素視為參數。
在Windows系統,shell=True預設使用COMSPEC
環境變數指定的shell,一般是C:\WINDOWS\system32\cmd.exe
。唯一需要指定shell=True的場景是要執行的指令是shell內建的,如dir
, copy
。
bufsize:建立stdin/stdout/stderr管道檔案物件時作為對應的參數傳遞給open()
函數。
0:不始用緩衝
1:使用行緩衝
其他正整數:緩衝大小
負整數(預設):使用系統預設值
executable: 使用shell=True的場景很少。 shell=True時,在POSIX系統上此參數表示指定一個新的shell程式取代預設shell/bin/sh
。
stdin/stdout/stderr:分別指定程式執行的標準輸入,標準輸出,標準錯誤。可選值包括PIPE
,DEVNULL
,已存在的檔案描述符(正整數),已存在的檔案對象,None。子進程檔案句柄繼承自父進程。除此之外,stderr還可以是STDOUT
,表示標準錯誤輸出重定向到標準輸出。
preexec_fn:限於POSIX系統,設定一個可呼叫對象,先於子程序中的程式執行。
close_fds:如果為False,檔案描述子遵循Inheritance of File Descriptors中所述的inheritable
識別。
如果為True,在POSIX系統下,在子程序執行前關閉除0,1,2外的檔案描述子。
pass_fds:限於POSIX,可選的檔案描述子序列,用於在父子進程間保持開放。只要提供了此參數,close_fds強制設為True。
cwd:在子程序執行前改變工作目錄為cwd,可以是字串或path-like物件。
restore_signals:限於POSIX,略
start_new_session:限於POSIX,略
env: dict對象,為新進程定義環境變量,取代繼承自父進程的變數。在Windows下,要執行side-by-side assembly
必須包含可用的環境變數SystemRoot
。 如果指定了env,就必須提供程式執行依賴的所有環境變數
encoding/errors/text/universal_newlines:stdin/stdout/stderr預設以二進位模式打開。但如果指定了encoding/errors或text為True,將使用指定的encoding和errors以文字模式開啟stdin/stdout/stderr。 universal_newlines參數等同於text,用於後向相容。
startupinfo:只限於Windows,略
creationflags:只限於Windows,略
方法
#poll():檢查子程序是否終止。傳回None表示未終止,否則設定returncode屬性並回傳。
wait(timeout=None):如果子程序在timeout後沒有終止,拋出TimeoutExpired異常。否則設定returncode屬性並回傳。
communicate(input=None, timeout=None):進程互動:傳送資料到stdin,讀取stdout或stderr的資料知道讀取到結束符號。傳回(stdout_data, stderr_data)形式的元組,元組類型是string或byte。
input為None或要傳送到子程序的數據,根據stream開啟模式的不同,可以是string或byte類型。
如果要和進程的stdin交互,創建Popen物件時需要指定stdin=PIPE。類似的,返回的tuple如果希望是非None,則需要設定stdout=PIPE和/或stderr=PIPE。
如果子程序在timeout後沒有終止,拋出TimeoutExpired異常,但子程序並未kill掉,一個好的應用應該kill掉子程序並結束交互:
proc = subprocess.Popen(...) try: outs, errs = proc.communicate(timeout=15) except TimeoutExpired: proc.kill() outs, errs = proc.communicate()
send_signal( signal):傳送訊號到子程序
terminate():終止子程序。 POSIX系統上,發送SIGTERM訊號到子程序,Windows系統上會呼叫TerminateProcess()終止程序
kill():強制終止子程序。 POSIX系統上,傳送SIGKILL訊號到子進程。 Windows系統上kill()是terminate()的別名
屬性
#args:傳入Popen
建構器的第一個參數, list或string類型
stdin:如果傳遞給Popen的stdin參數是PIPE,該屬性表示string或byte類型的可寫stream物件。如果傳遞給Popen的stdin參數不是PIPE,此屬性值為None
stdout:與Popen.stdin相近,但stream物件是可讀的
#stderr:與Popen.stdout相近
pid:子進程進程號。如果設定了shell=True,pid表示派生shell的進程號
returncode:子程序回傳碼,None表示進程未終止。負數-N表示進程被訊號N終止(僅限POSIX)。
CompletedProcess
run()
函數執行的回傳值,表示程式執行完成。
屬性
args:傳入run()
函數的第一個參數,list或string類型
returncode:子程序退出碼。如果為負數,表示進程因為某個訊號退出
stdout:捕獲的子程序的標準輸出,預設為byte類型,如果run()
函數調用時指定了encoding或errors,或設定了text=True則為string類型。如果未捕獲標準輸出返回None
stderr:捕獲的子程序的標準錯誤,則預設為byte類型,如果run()
函數呼叫時指定了encoding或errors,或設定了text=True則為string類型。如果未擷取標準錯誤回傳None
方法
check_returncode():如果returncode非0,拋出CalledProcessError
cmd:
指令#timeout:
秒為單位的時間 output:run()
或
check_output()
stdout:
output屬性別名稱stderr:run()
check_call()
或
check_output()
returncode:
子程序退出碼。若為負數,表示行程因為某個訊號退出cmd:
同TimeoutExpiredoutput:
同TimeoutExpired#stdout:
同TimeoutExpiredstderr:
同TimeoutExpired本篇文章到這裡就已經全部結束了,更多其他精彩內容可以追蹤PHP中文網的python影片教學
欄位!以上是python中subprocess類別與常數的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。