python-3.x - 等价于 bash "|" 在python3中
问题描述
在 bash 中,您可以执行此操作echo a | python -c "print('example:', input())"
,您将获得example: a
. 你怎么能在python中做同样的事情。
我试过这样做:
pid = os.fork()
if not pid:
os.dup2(0, 1)
os.execv("/usr/local/bin/python3", ["/usr/local/bin/python3", "-c", "print('example:', input())"])
else:
subprocess.call(["echo", "a"])
我试过这个:
proc1 = subprocess.Popen(["echo", "a"], stdout=subprocess.PIPE)
proc2 = subprocess.Popen(["python", "-c", "print('example:', input())"], stdin=subprocess.PIPE)
proc2.stdin.write(proc1.stdout.read())
但两次都出现了这个错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
EOFError
解决方案
推荐阅读
- javascript - 下载客户端服务器发送的zip文件?
- python - 如何正确求解一维波动方程以获得位移剖面(周期性边界条件问题)?
- android - Android - 如何在确认对话框下方显示警告对话框?
- c# - 为 Html Encode 属性实现注释的简单方法是什么?
- java - spring cloud stream 和 spring cloud starter stream kafka 是否适用于 spring boot 1.4.2.RELEASE?
- c# - 如何编译我的 Hello World 程序?
- react-native-android - 不使用 Firebase 时为 Android GoogleSignIn 生成 google-services.json
- python - 在 Django 中创建唯一的会话 URL
- kotlin-exposed - 在 Exposed 中选择查询作为 where 条件
- forms - 如何以谷歌形式将默认日期设置为今天?