首页 > 编程语言 >Python 优雅的使用 subprocess.Popen 获取实时输出,以及中止 subprocess

Python 优雅的使用 subprocess.Popen 获取实时输出,以及中止 subprocess

时间:2023-08-14 18:55:50浏览次数:42  
标签:__ Python Popen subprocess process time import

# -*- coding: utf-8 -*-

import shlex
import os
import signal
import time
import threading
from subprocess import Popen, PIPE

def run_command(command):
    process = Popen(shlex.split(command), stdout=PIPE)
    st = time.time()
    while True:
        output = process.stdout.readline().rstrip().decode('utf-8')
        if output == '' and process.poll() is not None:
            break
        if output:
            print(output.strip())

        if time.time() - st > 3:
            os.kill(process.pid, signal.CTRL_C_EVENT)
            break

    rc = process.poll()
    return rc

if __name__ == "__main__":
    t = threading.Thread(target=run_command, args=("ping baidu.com",))
    t.start()

标签:__,Python,Popen,subprocess,process,time,import
From: https://www.cnblogs.com/cokefentas/p/17629470.html

相关文章

  • Python合并两个字典代码
    合并两个字典Python3.5之后,合并字典变得容易起来。我们可以通过**符号解压字典,并将多个字典传入{}中,实现合并。defMerge(dict1,dict2):res={**dict1,**dict2}returnres#两个字典dict1={"name":"Joy","age":25}dict2={"name":"Joy",......
  • Python代码链式比较
    链式比较python有链式比较的机制,在一行里支持多种运算符比较。相当于拆分多个逻辑表达式,再进行逻辑与操作。a=5print(2<a<8)print(1==a<3)输出:TrueFalse......
  • 盘点一个列表相加的Python基础题目
    大家好,我是皮皮。一、前言前几天在明佬的Python群【dq】问了一个Python列表基础处理的问题,一起来看看吧。下图是他的原始列表,想通过左边的列表,得到右边的合并列表。二、实现过程这里【流水线】和【hclw】大佬给了一个答案,如下图所示:如此顺利地解决了粉丝的问题。后来他自己也写了个......
  • # yyds干货盘点 # 盘点一个Python自动化办公的实战案例——批量合并Excel文件(上篇)
    大家好,我是皮皮。一、前言前几天在Python星耀群【维哥】问了一个Python自动化办公处理的问题,一起来看看吧。大佬们好,请教一个Python自动化办公的问题,我有一个文件夹,里边有多个Excel文件,分别是员工8月份绩效表格,每一个表格里边都是固定的两列,分别是日期和绩效得分,如下图所示:现在他想......
  • Python学习 -- 常用函数与实例详解
    在Python编程中,数据转换是一项关键任务,它允许我们在不同数据类型之间自由流动,从而提高代码的灵活性和效率。本篇博客将深入探讨常用的数据转换函数,并通过实际案例为你展示如何巧妙地在不同数据类型之间转换。数据类型转换函数Python提供了多种数据类型转换函数,以下是其中几个常用的......
  • 前端 Java Python等资源合集大放送
    如果需要学习视频,欢迎关注【JAVA乐园】微信公众号,回复【领取资源】菜单一键领取以下所有200G干货资源,获取更多有用技术干货、文档资料。所有文档会持续更新,欢迎关注一起成长!1、vue全套Vue.js是一套构建用户界面的渐进式框架。只关注视图层,采用自底向上增量开发的设计。通过尽......
  • Python Chagpt Ai智能批量问答的研究实现
    首先介绍一下我的软件界面:功能介绍:1:实现了单个一问一答功能    2:可以批量将本地执行目录下的Excel中的问题向chatgpt提问题,系统得到答案后批量将问题对应的答案写入到Excel中 部分代码截图:  有感兴趣的联系V:xunmengqishi ......
  • Python-嵌套字典获取特定的键值对
    简单示例:test_data=[{"name":"路飞","age":18,"from":"Donghaisea"},{"name":"索隆","age":18,"from":"Xihaisea"}]forhzintest_data:#遍历......
  • Python PIL Image.crop()详解+裁剪四元组定位的小技巧
    0Image.crop详解image.crop是Python中用于裁剪图片的函数。在使用该函数前,我们需要先导入PIL库,即PythonImageLibrary。fromPILimportImage#打开图片img=Image.open('example.jpg')#图片的裁剪区域(区域左上角的坐标为(100,100),右下角的坐标为(300,300))crop_are......
  • 9.0 Python 内置模块应用
    Python是一种高级、面向对象、通用的编程语言,由GuidovanRossum发明,于1991年首次发布。Python的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发。Python语言被广泛用于Web开发、科学计算、人工智能、自动化测试、游戏开发等各个领域,并且拥有丰富的第三方库和......