使用python執行系統命令——subprocess


 

 背景:subprocess是python官方推薦調用系統命令的模塊

 

import subprocess

 

 

subprocess最主要的兩個方法/類:

 

# 參數說明:stdinstdout相當於一個管道。激活stdout變量后執行結果將被重定向到stdout這個文件中,激活stdin可以從這里輸入與子程序(用這個腳本執行系統命令再打開的程序)交互的命令。

                                         注意:要想激活這兩個變量必須給他們賦予一個模塊指定的變量"subprocess.PIPE"

#     shell:如果此變量被設為True,則會調用系統默認shellcmd/bash)執行系統命令,如果設為False則用python解釋器自己的shell執行命令。

#     timeout:執行命令后的等待時間,超時則停止繼續往下執行

#     stderr:保存錯誤信息

 

subprocess.run('此處寫操作系統的命令', *,stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, encoding=None, errors=None)

subprocess.Popen('此處寫操作系統的命令', *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, encoding=None, errors=None)

 

 

 

 

一、獲取執行操作命令后的結果:

bb = subprocess.run('ipconfig', stdout=subprocess.PIPE)

print(bb.stdout.decode('gbk'))    ======> 執行結果就保存在stdout這個變量中

 

 

二、利用python代碼打開一個程序,並且和這個程序實現交互:

 

1、直接輸入交互命令方式:

bb = subprocess.Popen('python', stdout=subprocess.PIPE, stdin=subprocess.PIPE)

bb.stdin.write(b'print("123")')

bb.stdin.close()

print(bb.stdout.read())

 

2、從文件讀取交互命令方式

f = open('123')  =====>此文件包含要執行的交互命令

bb = subprocess.run('python', stdout=subprocess.PIPE, stdin=f)

print(bb.stdout)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM