好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 詳解Python調用系統命令的六種方法

詳解Python調用系統命令的六種方法

熱門標簽:江門智能電話機器人 滴滴地圖標注公司 杭州房產地圖標注 甘肅高頻外呼系統 地圖標注可以遠程操作嗎 智能電話機器人調研 天津塘沽區地圖標注 400電話在線如何申請 如何申請400電話代理

作為膠水語言,Python可以很方便的執行系統命令,Python3中常用的執行操作系統命令有os.system()、os.popen()、subprocess.popen()、subprocess.call()、subprocess.run()、subprocess.getstatusoutput()六種方法。

os.system()

system函數可以將字符串轉化成命令在服務器上運行;其原理是每一條system函數執行時,其會創建一個子進程在系統上執行命令行,子進程的執行結果無法影響主進程。

其返回值是指令運行后返回的狀態碼,0表示指令成功執行,1表示失敗,256表示沒有返回結果,該方法適用于系統命令不需要輸出內容的場景。

用法:

os.system("command")

示例:

import os
a=os.system("ping 192.168.1.101") #使用a接收返回值
print(a)

輸出:

正在 Ping 192.168.1.101 具有 32 字節的數據:
來自 192.168.1.101 的回復: 字節=32 時間=8ms TTL=127
來自 192.168.1.101 的回復: 字節=32 時間=2ms TTL=127
來自 192.168.1.101 的回復: 字節=32 時間=2ms TTL=127
來自 192.168.1.101 的回復: 字節=32 時間=2ms TTL=127

192.168.1.101 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
    最短 = 2ms,最長 = 8ms,平均 = 3ms
0
Process finished with exit code 0

也可以在linux系統下運行

import os
os.system('cd /home  mkdir test') 執行多條命令可以使用連接

os.popen(command,mode)

這種調用方式是通過管道的方式來實現,這個函數的返回值是一個文件對象,可以讀或者寫(由mode決定,mode默認是'r')。如果mode為'r',調用該對象的read()或readlines()方法可以讀取輸出內容。

用法:os.popen(command[, mode[, bufsize]])

os.system(cmd)或os.popen(cmd),前者返回值是腳本的退出狀態碼,后者的返回值是腳本執行過程中的輸出內容。

import os
a=os.popen("ipconfig")
print(a.read())

輸出:
以太網適配器 以太網:

   連接特定的 DNS 后綴 . . . . . . . :
   本地鏈接 IPv6 地址. . . . . . . . : fe81::b0ed:2b1b:7385:97d1%8
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
   子網掩碼  . . . . . . . . . . . . : 255.255.255.0
   默認網關. . . . . . . . . . . . . : 192.168.1.1

subprocess模塊

subprocess模塊是python從2.4版本開始引入的模塊,主要用來取代 一些舊的模塊方法,如os.system、os.spawn、os.popen、commands.*等。官方推薦使用該模塊執行系統命令,subprocess模塊通過子進程來執行外部指令,并通過input/output/error管道,獲取子進程的執行的返回信息。

好處在于:運用對線程的控制和監控,將返回的結果賦于一變量,便于程序的處理。

subprocess.Popen()

使用Popen可以創建進程,并與進程進行復雜的交互。

用法:child = subprocess.Popen(["cmd","arg1"...])

常用參數說明:

示例

from subprocess import PIPE, Popen

# 返回的是 Popen 實例對象
proc = Popen(
  'ipconfig', # cmd特定的查詢空間的命令
  stdin=None, # 標準輸入 鍵盤
  stdout=PIPE, # -1 標準輸出(演示器、終端) 保存到管道中以便進行操作
  stderr=PIPE, # 標準錯誤,保存到管道
  shell=True)

# print(proc.communicate()) # 標準輸出的字符串+標準錯誤的字符串
outinfo, errinfo = proc.communicate()
print(outinfo.decode('gbk')) # 外部程序(windows系統)決定編碼格式
print(errinfo.decode('gbk'))

輸出:

以太網適配器 以太網:

   連接特定的 DNS 后綴 . . . . . . . :
   本地鏈接 IPv6 地址. . . . . . . . : fe81::b0ed:2b1b:7385:97d1%8
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
   子網掩碼  . . . . . . . . . . . . : 255.255.255.0
   默認網關. . . . . . . . . . . . . : 192.168.1.1


Process finished with exit code 0

subprocess.call()

執行指定的命令, 返回命令執行狀態, 功能類似os.system(cmd),參數shell默認為False

用法:subprocess.call("command")

# linux獲取磁盤空間
import subprocess
subprocess.call(['df', '-h']) # 數組作為參數運行命令

輸出:
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M   32K  920M   1% /dev/shm
tmpfs           920M  472K  919M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
/dev/vda1        50G  6.2G   41G  14% /
tmpfs           184M     0  184M   0% /run/user/0

subprocess.run()

python3.5中新增的函數, 執行指定的命令, 等待命令執行完成后返回一個包含執行結果的CompletedProcess類的實例。run默認不會返回輸出,只返回命令和執行狀態。

用法:

subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, universal_newlines=False)

import subprocess
completed = subprocess.run(['ls', '-1'])
print('returncode:', completed.returncode)

subprocess.getstatusoutput()

執行cmd命令,返回一個元組(命令執行狀態,命令執行結果輸出)。

返回狀態碼和結果,0表示成功

import subprocess
ret, val = subprocess.getstatusoutput("ping www.baidu.com")
print(ret)
print(val)

輸出:
0

正在 Ping www.a.shifen.com [14.215.177.39] 具有 32 字節的數據:
來自 14.215.177.39 的回復: 字節=32 時間=29ms TTL=53
來自 14.215.177.39 的回復: 字節=32 時間=29ms TTL=53
來自 14.215.177.39 的回復: 字節=32 時間=29ms TTL=53
來自 14.215.177.39 的回復: 字節=32 時間=30ms TTL=53

14.215.177.39 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
    最短 = 29ms,最長 = 30ms,平均 = 29ms

關于subprocess模塊的具體用法,大家可以查看文檔進行學習https://docs.python.org/3/library/subprocess.html。

到此這篇關于詳解Python調用系統命令的六種方法的文章就介紹到這了,更多相關Python調用系統命令內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python實現類似jQuery使用中的鏈式調用的示例
  • 解決python調用matlab時的一些常見問題
  • Python調用R語言實例講解
  • python程序調用遠程服務的步驟詳解
  • 使用pycallgraph分析python代碼函數調用流程以及框架解析
  • Python與C/C++的相互調用案例
  • python調用百度AI接口實現人流量統計
  • 安裝python依賴包psycopg2來調用postgresql的操作
  • Python調用系統命令os.system()和os.popen()的實現
  • 詳解如何在VS2019和VScode中配置C++調用python接口
  • python中如何實現鏈式調用

標簽:東莞 廊坊 長春 河池 臨汾 漢中 重慶 德宏

巨人網絡通訊聲明:本文標題《詳解Python調用系統命令的六種方法》,本文關鍵詞  詳解,Python,調用,系統,命令,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Python調用系統命令的六種方法》相關的同類信息!
  • 本頁收集關于詳解Python調用系統命令的六種方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 色香视频首页一区二区三区| 老师办公室被吃奶好爽在线观看| bl片GV全肉无码| 国产寡妇婬乱A毛片视频动漫 | 欧美日韩人妻精品| 别揉我胸?啊?嗯高潮的电视剧| 欧美日本性| 在丈夫面前被耍了伦理| 经典足控黄文| 头师傅一体2| 韩国《少妇的滋味》电影| 成人一区在线| 欧美三级在线现看中文| 美国一级aaaaa毛片| 国产一级做美女做受视频| 午夜影视啪啪免费体验区入口| 搞逼视频网站| 日本爽爽爽爽爽爽免费视频潘金莲| 日本三级韩国三级三级a级播放 | 又大又粗又长硬又紧又爽最新章节 | 揉她的双乳下面湿透了的漫画| 福利一区福利二区微拍| 国产精品久久久久久影院8一贰佰| 恋老old300| 公翁吃胸?吮奶小玲| 亚洲欧美日韩国产综合高清| 免费在线观**| 俄罗斯毛片基地| 日本工番口番H漫画人妻| 色屁屁www影院免费观看视频| 我和公gong在厨房啪啪| 轻点太大了| 国产精品青青青高清在线| 国产边添边摸边做边爱| 俄罗斯人又更又租美国在哪里看| 国产成人精品免费久久久久| 欧美精品一区二区性色a+v| 日日爽夜夜| 英语课代表被我c翻了视频| 国产精品变态重口在线| 晨勃playH|