Python 模組學習

2022-08-19 05:21:16 字數 1735 閱讀 3403

作用:允許建立乙個新的程序讓其執行另外的程式,並與它進行通訊,獲取標準的輸入、標準輸出、標準錯誤以及返回碼等

subprocess模組中定義了乙個popen類,通過它可以來建立程序,並與其進行複雜的互動。檢視一下它的建構函式:

__init__(self, args, bufsize=0, executable=none,

stdin=none, stdout=none, stderr=none, preexec_fn=none,

close_fds=false, shell=false, cwd=none, env=none,

universal_newlines=false, startupinfo=none,

creationflags=0)

主要引數說明:

args:args should be a string, or a sequence of program arguments.也就是說必須是乙個字串或者序列型別(如:字串、list、元組),用於指定程序的可執行檔案及其引數。如果是乙個序列型別引數,則序列的第乙個元素通常都必須是乙個可執行檔案的路徑。當然也可以使用executeable引數來指定可執行檔案的路徑。

stdin,stdout,stderr:分別表示程式的標準輸入、標準輸出、標準錯誤。有效的值可以是pipe,存在的檔案描述符,存在的檔案物件或none,如果為none需從父程序繼承過來,stdout可以是pipe,表示對子程序建立乙個管道,stderr可以是stdout,表示標準錯誤資料應該從應用程式中捕獲並作為標準輸出流stdout的檔案控制代碼。

shell:如果這個引數被設定為true,程式將通過shell來執行。

env:它描述的是子程序的環境變數。如果為none,子程序的環境變數將從父程序繼承而來。

建立popen類的例項物件

res = subprocess.popen(cmd, shell=true, stdout=subprocess.pipe, stderr=subprocess.stdout)

cmd:標準像子程序傳入需要執行的shell命令,如:ls -al

subprocess.pipe:在建立popen物件時,subprocess.pipe可以初始化為stdin, stdout或stderr的引數,表示與子程序通訊的標準輸入流,標準輸出流以及標準錯誤。

subprocess.stdout:作為popen物件的stderr的引數,表示將標準錯誤通過標準輸出流輸出。

理論解析

1

import

subprocess

23 cmd = input("

請輸入指令》")

4 res =subprocess.popen(

5 cmd, #

字串指令:相當於 "ls -l","ifconfig"

6 shell=true, #

使用shell,相當於使用終端

7 stderr=subprocess.pipe, #

標準錯誤輸出,錯誤指令輸出的錯誤資訊被它拿到

8 stdout=subprocess.pipe, #

標準輸出,正確指令的輸出結果被它拿到。9)

1011

print(res.stderr.read().decode("

utf-8"))

12print(res.stdout.read().decode("

utf-8

"))

subprocess.py

python學習(模組)

模組搜尋路徑 匯入乙個叫 spam 的模組時,直譯器先在當前目錄中搜尋名為 spam.py 的檔案,然後在環境變數 pythonpath 指琮的目錄列表中搜尋,然後是環境變數 path 中的路徑列表。如果 pythonpath 沒有設定,或者檔案沒有找到,接下來搜尋安裝目錄,在 unix 中,通常是...

python 模組學習

一 from django.contrib.auth.hashers import make password 通過函式名即可發現,主要有兩個函式,分別是建立密碼和驗證 用法ps 123456 dj ps make password ps,none,pbkdf2 sha256 建立django密碼,...

python學習 模組

time import time time.ctime 獲取當前時間的字串 time.localtime 返回值是strcut time型別的物件 st time.localtime st.tm yday 現在是今年第幾天 st.tm hour 現在是今天第幾個小時 st.tm mon 現在是今年的...