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

python執行shell實時輸出

系統 2062 0

1.使用readline可以實現

          
            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:  # 判斷子進程是否結束
            break

    return cmd.returncode


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

          
        

2.readline可能導致卡死,官方推薦使用communicate,但是如果還是使用subprocess.PIPE,執行完命令后才能拿到標準輸出,替換成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"))

          
        

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 二手房| 西宁市| 正镶白旗| 龙陵县| 咸阳市| 武清区| 泰安市| 运城市| 邢台县| 弋阳县| 桃园市| 平潭县| 徐水县| 潜山县| 温泉县| 方城县| 恭城| 咸宁市| 陆良县| 五家渠市| 米林县| 资溪县| 化德县| 宁陕县| 双辽市| 饶平县| 石林| 庐江县| 平昌县| 饶阳县| 河曲县| 永康市| 炉霍县| 吉木萨尔县| 龙胜| 咸阳市| 额敏县| 永州市| 封开县| 荥阳市| 南靖县|