python使用subprocess.Popen多线程的cmd命令交互

python使用subprocess.Popen多线程的cmd命令交互

我们创建了一个CmdThread类,该类继承自threading.Thread,并重写了run()方法,我们使用subprocess.Popen()执行指定的命令,并通过管道获取命令的输出。然后,我们逐行读取输出,并打印到控制台


import subprocess
import threadingclass CmdThread(threading.Thread):def __init__(self, command):threading.Thread.__init__(self)self.command = commanddef run(self):process = subprocess.Popen(self.command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)while True:line = process.stdout.readline().decode("utf-8")if not line:breakprint(line.strip())

我们创建了两个CmdThread实例,并分别启动线程。通过调用start()方法启动线程,并通过调用join()方法等待线程结束。这样,我们就可以同时执行多个命令,并实现多线程的cmd命令交互。


# 创建多个CmdThread实例
cmd1 = CmdThread("ping www.google.com")
cmd2 = CmdThread("dir")# 启动线程
cmd1.start()
cmd2.start()# 等待线程结束
cmd1.join()
cmd2.join()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商API数据接口|拼多多商品订单物流接口的接入

拼多多是一家中国的电商平台,提供了多语言环境下的接口,以便开发者能够在各种语言环境中使用拼多多的功能和服务。以下是拼多多多语言环境下的接口介绍: 1. 用户认证接口:通过该接口,开发者可以实现用户的注册、登录和…

【Windows】解决Windows11错误0x80190001

1. 安装Fiddler网络调试工具 下载链接:Fiddler Classic 注:获取安装包的过程中可能要获取邮箱信息,但不用验证邮箱,大概是给你的邮箱发广告信息,问题不大。 在“开始”界面找到Fiddler Classic,点击运行…

攻防渗透常用命令速查

攻防渗透常用命令速查 建议配合CTRL+F进行查询 目录 攻防渗透常用命令速查 目录反弹Shell bashcurlhttpjavassh无记录shellpython交互shell图片马制作按首字母排序 AlliNArjundirsearchdirmapEHoleENScan_GOfindffuffscangrephping3hydraJNDIHackBrowerserDatakscanksubdomai…

办公用品领用管理系统能做什么?如何优化企业运营管理工作?

办公用品相对于公司其他的固定资产来说,大多数都属于低值易耗品,东西虽小但必须要有,且种类较多,因此制定适当的制度对于日常管理来说是十分必要的流程,行政人员也需要根据不同的需求去进一步的完善。然而,…

maven 常用命令解析

目录 maven 是什么 Maven 目录结构 maven 常用命令解析 mvn clean mvn validate mvn compile mvn test mvn package mvn verify mvn install mvn site mvn deploy maven 是什么 Maven 是一个流行的项目管理和构建工具,用于帮助开发人员管理 Java 项目的…

【动态规划】LeetCode-1137.第N个泰波那契数

🎈算法那些事专栏说明:这是一个记录刷题日常的专栏,每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目,在这立下Flag🚩 🏠个人主页:Jammingpro 📕专栏链接&…

【产品经理】AI在SaaS产品中的应用及挑战

随着ChatGPT大模型在全球的爆火,AI迅速在各个行业内,助力于各行业的效率提升。而SaaS领域,AI同样也大有可为。 AI(人工智能,Artificial Intelligence的缩写)近一年来一直处于舆论风口,随着ChatG…

「Linux」进程等待与替换

💻文章目录 📄前言进程等待进程等待的概念进程等待的方法 进程替换进程替换的概念替换方式 📓总结 📄前言 在如今的时代,多进程编程已经变成了必不可少的一部分,而进程等待、进程替换这两个概念都是作为多进…

如何使用1688店铺所有商品API接口

一、引言 随着电商行业的快速发展,越来越多的商家选择在1688平台上开店销售商品。然而,手动抓取店铺商品信息不仅效率低下,而且容易出错。为了解决这个问题,我们可以使用1688开放平台提供的API接口,实现一键获取店铺所…

【matlab程序】图像最大化填充画布

【matlab程序】图像最大化填充画布 不做任何修饰: 修饰: 图片 往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【python海洋专题三】图像修饰之画布和坐标轴 【Pytho…

2023-简单点-树莓派-camera module 3介绍

Raspberry Pi Camera Module 3 介绍开头先说,注意事项libcamera感光芯片和驱动的兼容图额外:不同module的对应的参数图用bullseye系统测试摄像头预览窗口拍摄静态图片bayer raw图像获取超长曝光视频流raw视频流 ref 介绍 树莓派镜像在Bullseye版本之后&…

高效的将两个文件夹中多余的文件删除

高效的将两个文件夹中多余的文件删除 解决方案 之前使用的是这个方法,但是图像太多,需要删除的有70W张,得删10多天。。 将两个文件夹中重复的图象删除 解决方案 先将image图像复制一份,然后改名为txt import osdef change_file…

论文笔记:Confidential Assets

Confidential Assets 描述了一种称为“保密交易”的方案,该方案模糊了所有UTXO的金额,同时保持了不创建或销毁硬币的公共可验证性。进一步将此方案扩展到“保密资产”,一种单一的基于区块链的分类帐可以跟踪多种资产类型的方案。将保密交易扩…

Vue3-toRef 和 toRefs 函数

Vue3-toRef 和 toRefs 函数 功能:可以简化语法调用。toRef 函数执行时会生成一个对象 ObjectRefImpl ,是一个引用对象,具有value属性(getter 和 setter 属性)语法格式:toRef(对象名, 对象中的属性名) toRe…

Attention机制(笔记)

参考:2.3.2注意力机制-part1_哔哩哔哩_bilibili 什么是attention? 答:注意力放在事物最有辨识度的部分 attention计算机制: 为什么用这个公式可以得到attention? 补充说明(chatGPT给出的解释)&…

sql关联另一个表,update表的值

sql示例: update student_score ss set ss.names.name from student s where ss.codes.code 最常见的学生成绩表 student_score通过学生student_code关联学生信息表student 学生信息表(student): code name age gender 1001 …

优先队列经典例题leetcode思路代码详解

目录 leetcode215题.数组中的第k个最大元素 leetcode347题.前k个高频元素 leetcode295题.数据流的中位数 对优先队列感兴趣的朋友可以去看我上一篇文章。 优先队列基础讲解-CSDN博客 leetcode215题.数组中的第k个最大元素 215. 数组中的第K个最大元素 - 力扣(…

值得收藏的15 个好用的 iPad/iPhone 数据恢复工具

有时您需要从移动或平板设备恢复关键数据。 许多人已经开始在手机上存储重要文件,因为他们可以在旅途中或现在几乎在任何情况下轻松访问数据。 不言而喻; 您只需在手机上轻轻一按,即可轻松访问电子邮件、共享图片、编辑和共享文档、支付账单等。一般来…

【Openstack Train安装】七、glance安装

Glance是为虚拟机的创建提供镜像的服务,我们基于Openstack是构建基本的IaaS平台对外提供虚拟机,而虚拟机在创建时必须为选择需要安装的操作系统,Glance服务就是为该选择提供不同的操作系统镜像。Glance提供Restful API可以查询虚拟机镜像的me…

ios(swiftui) 属性包装器详解

目录 1. State 2. Binding 3. ObservedObject 和Published 4. StateObject 5. EnvironmentObject和Environment 6. AppStorage 在 SwiftUI 中,属性包装器用于增强和管理视图的状态,以及处理视图与数据模型之间的绑定和交互。下面是一些常见…