python实现 linux 执行命令./test启动进程,进程运行中,输入参数s, 再输入参数1, 再输入参数exit, 获取进程运行结果重定向写入到文件

要在 Python 中实现执行 `./test` 启动进程,并在进程运行中依次输入参数 `s`、`1`,最后输入参数 `exit`,并将进程的输出结果重定向写入到文件,你可以使用 `subprocess` 模块。以下是一个示例代码:

import subprocess# 启动 test 进程
test_process = subprocess.Popen(["./test"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)# 输入参数 s
test_process.stdin.write("s\n".encode('utf-8'))
test_process.stdin.flush()# 输入参数 1
test_process.stdin.write("1\n".encode('utf-8'))
test_process.stdin.flush()# 输入参数 exit
test_process.stdin.write("exit\n".encode('utf-8'))
test_process.stdin.flush()# 获取进程输出结果
output, error = test_process.communicate()
output_lines = output.decode("utf-8").splitlines()
for i in output_lines:print(i)# 将参数和结果写入文件
with open(order_result, "w",encoding="utf-8") as file:for line in output_lines:file.write(line)file.write("\n")# 等待进程退出
test_process.wait()

在这段代码中,我们使用 `subprocess.Popen` 来启动 `./test` 进程,并使用 `stdin.write` 方法向进程输入参数,通过 `stdin.flush` 确保输入被发送到进程。然后,使用 `communicate()` 方法获取进程的输出结果,并将其写入到名为 `output.txt` 的文件中。

你可以直接执行这段代码来实现输入参数、控制进程功能,并将进程的输出结果写入到文件中。请确保 `./test` 可以正确处理输入参数并产生输出结果。如有任何疑问,请随时告诉我。

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

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

相关文章

MoonBit 首场 MeetUp 活动火热报名中!更多活动惊喜等你来探索!

首场线下MeetUp来啦! 在数字化浪潮中,基础软件构筑了信息产业发展的根基,不仅是技术进步的支柱,也是推动经济增长的重要力量。基础软件的发展不仅关乎硬件的完善与应用软件的创新,更是连接过去与未来的桥梁。 尽管中国…

Docker容器化技术(docker-compose安装部署案例)

docker-compose编排工具 安装docker-compose [rootservice ~]# systemctl stop firewalld [rootservice ~]# setenforce 0 [rootservice ~]# systemctl start docker[rootservice ~]# wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-…

anaconda迁移深度学习虚拟环境 在云服务器上配置

1 anaconda 虚拟环境操作 1、 查看虚拟环境 conda info -e2、 创建新的虚拟环境 conda create -n deeplearning_all pip python3.63、 激活新建的虚拟环境 Conda activate deeplearning_all2 环境中相关库的版本即安装说明(这些库都是对应匹配的) …

Lenze伦茨8400变频器E84A L-force Drives 操作使用说明

Lenze伦茨8400变频器E84A L-force Drives 操作使用说明

跟selenium并肩的自动化神器 Playwright 的 Web 自动化测试解决方案

1. 主流框架的认识 总结: 由于Selenium在3.x和4.x两个版本的迭代中并没有发生多大的变化,因此Selenium一统天下的地位可能因新框架的出现而变得不那么稳固。后续的Cypress、TestCafe、Puppeteer被誉为后Selenium时代Web UI自动化的三驾马车。但是由于这三…

JavaEE 初阶篇-深入了解操作系统中的进程与 PCB

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 关于计算机是如何进行工作的 “常识” 1.1 关于寄存器、缓存与内存是如何配合 CPU “工作” 2.0 操作系统概述 2.1 操作系统内核 2.2 进程 2.3 PCB 2.3.1 PCB 属性…

Centos7没有可用软件包 ifconfig问题解决

问题描述 在Centos7中查看ip没有ifconfig,使用yum安装ifconfig报错没有可用软件包 ifconfig问题解决 [rootlocalhost etc]# yum -y install ifconfig 已加载插件:fastestmirror base …

动手做简易版俄罗斯方块

导读:让我们了解如何处理形状的旋转、行的消除以及游戏结束条件等控制因素。 目录 准备工作 游戏设计概述 构建游戏窗口 游戏方块设计 游戏板面设计 游戏控制与逻辑 行消除和计分 判断游戏结束 界面美化和增强体验 看看游戏效果 准备工作 在开始编码之前…

火灾自动报警及消防联动控制系统主机的九个主要组成部分

关于火灾报警联动系统的主机组成,一般有两种不同的概括,下面分别讨论。 一: 火灾报警主机的组成部分较多,主要包括以下消防设备:主电源、联动电源、打印机、驱动器、直接控制板、总线控制板、消防广播、消防电话主机…

粒子群算法 - 目标函数最优解计算

粒子群算法概念 粒子群算法 (particle swarm optimization,PSO) 由 Kennedy 和 Eberhart 在 1995 年提出,该算法模拟鸟群觅食的方法进行寻找最优解。基本思想:人们发现,鸟群觅食的方向由两个因素决定。第一个是自己当初飞过离食物…

FPGA工程正确的设计流程

1 正确的设计流程 分析项目的具体需求来设计系统的结构,划分系统的层次,确定各个子模块的结构关系和信号之间的相互关系,然后确定模块的端口信号等根据每隔模块的功能和自己的理解,结合芯片手册接口的时序,使用visio画…

基于QGraphicsView的图像显示控件,支持放大、缩小、鼠标拖动

原链接 前言 这是一个Qt平台的基于QGraphicsView类的图像显示控件,支持输入QPixmap、QImage、opencv的从cv::Mat类。 实现平台:Windows 10 x64 Qt 6.2.3 MSVC 2019 opencv 4.5 先来看演示视频 控件类实现 ImageViewer.h文件 #ifndef IMAGEVIEWER…

error: C preprocessor fails sanity check

问题 ./configure --prefix/opt/mips_lib/libev --hostmipsel-openwrt-linux CCmipsel-openwrt-linux-gcc运行后提示 checking how to run the C preprocessor... mipsel-openwrt-linux-gcc --sysroot/opt/mt7628/toolchain-mipsel_24kc_gcc-8.4.0_musl -I/opt/mt7628/toolch…

Docker 笔记(八)--Dockerfile

目录 1. 背景2. 参考3. 原文3.1 Dockerfile 支持的指令3.2 Dockerfile格式3.3 Parser指令syntaxescape 3.4 环境变量替换3.5 docker构建忽略文件3.6 Shell 和 exec 格式Exec 格式Shell 格式使用不同的 shell 3.7 FROM指令了解ARG和FROM如何交互 3.8 RUN指令RUN指令缓存失效RUN …

4 CUDA 环境搭建

4.1 简介 本章面向从未接触过CUDA的初学者。我们将依次介绍如何在不同操作系统上安装CUDA、有哪些可用的CUDA 工具以及CUDA如何编译代码,最后介绍应用程序接口提供的错误处理手段,并帮助读者识别CUDA代码和开发过程中必然碰到的应用程序接口报错。Windo…

java框架 2 springboot 过滤器 拦截器 异常处理 事务管理 AOP

Filter 过滤器 对所有请求都可以过滤。 实现Filter接口,重写几个方法,加上WebFilter注解,表示拦截哪些路由,如上是所有请求都会拦截。 然后还需要在入口处加上SvlterComponentScan注解,因为Filter是javaweb三大组件之…

Leetcode刷题【每日n题】(8)

题目一 思路分析 1.循环遍历直到这个数小于102.获取每个位数之合3.将合赋值给目标数,直到小于10 代码实现 class MyTest{public int addDigits(int num) {//直到目标数小于10while(num>10){//定义各个位数合int sum0;//num不能为0while(num>0){//获取每个位上…

linux 获取cpu和硬盘id

直接代码&#xff0c;有的电脑cpuid可能没有&#xff0c;代码头文件没有理清但是满足编译需求 std::string getcpuid() 来获取cpu id信息 std::string get_harddisk_info()来获取硬盘id #include <unistd.h> #include <cstdio> #include <cstring> #include…

java-ssm-jsp基于javaweb的宠物猫狗商业系统

java-ssm-jsp基于javaweb的宠物猫狗商业系统 获取源码——》公主号&#xff1a;计算机专业毕设大全 获取源码——》公主号&#xff1a;计算机专业毕设大全

conda创建新的env报错CondaVerificationError

conda创建新的env报错CondaVerificationError 错误详情解决方案 错误详情 Downloading and Extracting PackagesPreparing transaction: done Verifying transaction: failedCondaVerificationError: The package for _openmp_mutex located at /home/work/miniconda3/pkgs/_o…