日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python執(zhí)行shell實時輸出

系統(tǒng) 2046 0

1.使用readline可以實現(xiàn)

          
            import subprocess


def run_shell(shell):
    cmd = subprocess.Popen(shell, stdin=subprocess.PIPE, stderr=subprocess.PIPE,
                           stdout=subprocess.PIPE, universal_newlines=True, shell=True, bufsize=1)
    # 實時輸出
    while True:
        line = cmd.stdout.readline()
        print(line, end='')
        if subprocess.Popen.poll(cmd) == 0:  # 判斷子進程是否結(jié)束
            break

    return cmd.returncode


if __name__ == '__main__':
    print(run_shell("ping www.baidu.com"))

          
        

2.readline可能導致卡死,官方推薦使用communicate,但是如果還是使用subprocess.PIPE,執(zhí)行完命令后才能拿到標準輸出,替換成sys.stdout就能達到實時輸出效果,代碼附上

          
            import subprocess
import sys


def run_shell(shell):
    cmd = subprocess.Popen(shell, stdin=subprocess.PIPE, stderr=sys.stderr, close_fds=True,
                           stdout=sys.stdout, universal_newlines=True, shell=True, bufsize=1)

    cmd.communicate()
    return cmd.returncode


if __name__ == '__main__':
    print(run_shell("ping www.baidu.com"))

          
        

更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 金秀| 苍山县| 哈密市| 昭苏县| 宜昌市| 日土县| 抚州市| 荥经县| 仪征市| 麦盖提县| 砚山县| 龙海市| 肃宁县| 安福县| 安岳县| 科技| 普陀区| 阿克苏市| 东海县| 东乡族自治县| 曲麻莱县| 伊川县| 东安县| 保山市| 阿克陶县| 邻水| 石屏县| 凯里市| 金阳县| 南川市| 蓝山县| 桐城市| 平顶山市| 织金县| 望江县| 涞源县| 双桥区| 托克托县| 刚察县| 土默特左旗| 封丘县|