最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?subprocess.Popen?實時輸出?stdout的解決方法(正確管道寫法)

 更新時間:2023年07月18日 11:41:07   作者:墨痕訴清風(fēng)  
這篇文章主要介紹了Python?subprocess.Popen實時輸出stdout正確管道寫法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

大部分的程序是這樣的:

from subprocess import Popen, PIPE, STDOUT
p = Popen(cmd, stdout=PIPE, stderr=STDOUT, shell=True)
while True:
    print(p.stdout.readline())
    if not line: 
        break

但是由于子程序沒有進行 flush 的話,會把結(jié)果緩存到系統(tǒng)中。導(dǎo)致程序運行完成,上面的程序才會進行打出(會一直卡在readline這個函數(shù))。

解決方法:

p = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=1)
for line in iter(p.stdout.readline, b''):
    print line,
p.stdout.close()
p.wait()

實際弱口令我是這樣寫的

import subprocess     #Popen
proc = subprocess.Popen(medusaCMD, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
for line in iter(proc.stdout.readline, 'b'):
    print line
    if not subprocess.Popen.poll(proc) is None:
        if line == "":
            break
proc.stdout.close()

記小的寫法

proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
try:
    while True:
        buff = proc.stdout.readline()
        print(buff)
        if buff == '' and proc.poll() != None:
            break
        else:
            .....
except Exception:
    data["status"] = -1
finally:
    return data

單次管道輸出寫法

方法一

# -*- coding: UTF-8 -*-
import re
import sys
import subprocess
from subprocess import Popen, PIPE, STDOUT
#docker_info = {"CONTAINER ID":"", "NAME":"", "CPU %":"", "MEM USAGE / LIMIT":"", \
#               "MEM %":"", "NET I/O":"", "BLOCK I/O":"", "PIDS":""}
docker_list = []
cmd = "docker stats -a --no-stream"
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
try:
    buff = proc.communicate()
    stritem = buff[0]
    str_list = re.split(r'  +|\n', stritem)
    for i in range(8, len(str_list)-1):
        if i % 8 == 0:
            value = 0
            docker_info = {}
            docker_info["CONTAINER ID"] = str_list[i]
        else:
            value += 1
            if value == 1:
                docker_info["NAME"] = str_list[i]
            elif value == 2:
                docker_info["CPU %"] = str_list[i]
            elif value == 3:
                docker_info["MEM USAGE / LIMIT"] = str_list[i]
            elif value == 4:
                docker_info["MEM %"] = str_list[i]
            elif value == 5:
                docker_info["NET I/O"] = str_list[i]
            elif value == 6:
                docker_info["BLOCK I/O"] = str_list[i]
            elif value == 7:
                docker_info["PIDS"] = str_list[i]
                docker_list.append(docker_info)
                value = 0
    print docker_list
except Exception as e:
    print "error", e
    sys.exit(1)
    proc.stdout.close()

方法二(待測試)

import subprocess
from multiprocessing.dummy import Pool as ThreadPool
command = poc + ' -t ' + ip + ' -p ' + port
result = subprocess.getoutput(command)
if 'WARNING: SERVER IS VULNERABLE' in result:
    result = AAAAA
else:
    result = BBBBBB

到此這篇關(guān)于Python subprocess.Popen 實時輸出 stdout(正確管道寫法)的文章就介紹到這了,更多相關(guān)Python subprocess.Popen 實時輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python實現(xiàn)敲電子木魚效果

    基于Python實現(xiàn)敲電子木魚效果

    這篇文章主要為大家詳細介紹了如何基于Python實現(xiàn)敲電子木魚加功德效果,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2024-12-12
  • Python構(gòu)建簡單線性回歸模型

    Python構(gòu)建簡單線性回歸模型

    這篇文章主要介紹了Python構(gòu)建簡單線性回歸模型,線性回歸表示發(fā)現(xiàn)函數(shù)使用線性組合表示輸入變量。簡單線性回歸很容易理解,使用了基本的回歸技術(shù),一旦理解了這些基本概念,可以更好地學(xué)習(xí)其他類型的回歸模型
    2022-08-08
  • Python對比校驗神器deepdiff庫使用詳解

    Python對比校驗神器deepdiff庫使用詳解

    deepdiff模塊常用來校驗兩個對象是否一致,包含3個常用類,DeepDiff,DeepSearch和DeepHash,其中DeepDiff最常用,可以對字典,可迭代對象,字符串等進行對比,使用遞歸地查找所有差異,本文給大家講解Python對比校驗神器deepdiff庫,感興趣的朋友一起看看吧
    2023-04-04
  • 在Python GUI中處理用戶輸入的各種技巧分享

    在Python GUI中處理用戶輸入的各種技巧分享

    本文通過Python GUI框架tkinter,探討如何處理用戶輸入,包括實時驗證、焦點離開事件、阻止非法字符輸入等,并提供完整案例;幫助開發(fā)者提升用戶體驗,需要的朋友可以參考下
    2026-06-06
  • 使用jupyter notebook直接打開.md格式的文件

    使用jupyter notebook直接打開.md格式的文件

    這篇文章主要介紹了使用jupyter notebook直接打開.md格式的文件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python中的套接字編程是什么?

    Python中的套接字編程是什么?

    不可否認,互聯(lián)網(wǎng)已成為“存在之魂”,其活動以“連接”或“網(wǎng)絡(luò)”為特征.使用套接字的最關(guān)鍵的基礎(chǔ)之一,使這些網(wǎng)絡(luò)成為可能.本文涵蓋了有關(guān)使用Python進行套接字編程的所有領(lǐng)域.套接字可以幫助您建立這些連接,而Python無疑可以簡化連接,需要的朋友可以參考下
    2021-06-06
  • pytorch masked_fill報錯的解決

    pytorch masked_fill報錯的解決

    今天小編就為大家分享一篇pytorch masked_fill報錯的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python實現(xiàn)圖像全景拼接

    python實現(xiàn)圖像全景拼接

    這篇文章主要為大家詳細介紹了python實現(xiàn)圖像全景拼接,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • python3.6.5基于kerberos認證的hive和hdfs連接調(diào)用方式

    python3.6.5基于kerberos認證的hive和hdfs連接調(diào)用方式

    這篇文章主要介紹了python3.6.5基于kerberos認證的hive和hdfs連接調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)圖像卷積運算詳解

    Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)圖像卷積運算詳解

    這篇文章主要介紹了Python深度學(xué)習(xí)關(guān)于pytorch神經(jīng)網(wǎng)絡(luò)圖像卷積的運算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10

最新評論

沈丘县| 溆浦县| 微山县| 龙胜| 浮梁县| 苍梧县| 临武县| 彭山县| 宾川县| 玉溪市| 湖口县| 苗栗市| 泸西县| 石城县| 桃园县| 普安县| 云浮市| 高碑店市| 道真| 沁阳市| 青海省| 张家界市| 乌拉特前旗| 新昌县| 会宁县| 习水县| 南通市| 唐河县| 昆明市| 务川| 定南县| 佛山市| 盐津县| 镇原县| 正镶白旗| 尼玛县| 堆龙德庆县| 新巴尔虎左旗| 乃东县| 札达县| 凤庆县|