python - 将多个输入值传递给子进程
问题描述
我有一个外部(即不可更改)程序,它采用三个输入值<a>, <b>, and <c>
(提示)。
$ COMMAND
A: <a>
B: <b>
C: <c>
我想用这样的方式调用这个程序subprocces.run
。
result = subprocess.run(
"COMMAND", shell=True, stdout=subprocess.PIPE).stdout.decode('utf-8').split('\n')
如何传递这些输入值?
到目前为止,我已经尝试过做这样的事情。
(一个)
read, write = os.pipe()
os.write(write, "<a>\n")
os.write(write, "<b>\n")
os.write(write, "<c>\n")
os.close(write)
and
result = subprocess.run(
"COMMAND", shell=True, stdout=subprocess.PIPE, input=read).stdout.decode('utf-8').split('\n')
(二)
result = subprocess.run(
"COMMAND", shell=True, stdout=subprocess.PIPE, input="<a>\n<b>\n<c>\n", encoding=ascii).stdout.decode('utf-8').split('\n')
但是,我什么都做不了……
解决方案
推荐阅读
- matlab - 使用 MATLAB 绘制实时数据
- python - 使用 plotly 为 3D 散点图设置悬停距离
- mysql - 如何使用 docker 镜像创建用户和数据库
- node.js - 为什么我的流式 mp3 文件比 S3 存储桶中的原始文件更长/更大?
- android - 将文本编辑到 Spinner - Android Studio
- c# - 从当前用户查询 BranchId
- python - 将 await 与 fastapi 一起使用
- python - Geodjango + PostGIS。以平方米为单位的聚合多边形面积
- android - Google Play 商店在 Android 虚拟设备上不断崩溃
- c# - 如何将 void 同步方法转换为异步方法?