【发布时间】:2019-05-17 04:41:18
【问题描述】:
我试图弄清楚subprocess 中发生了什么。
所以,我写了这段代码:
import subprocess
p1 = subprocess.Popen('grep a', stdin=subprocess.PIPE, stdout=subprocess.PIPE,shell=True, universal_newlines=True)
p2 = subprocess.Popen('grep a', stdin=p1.stdout, stdout=open('test', 'w'),shell=True, universal_newlines=True)
p1.stdin.write("asdads"*700)
将字符串写入p1.stdin 后,我希望将字符串写入文件test。
但是文件里什么都没有。
当我尝试另一种方式时:
out, err = p1.communicate("adsad"*700)
字符串在out。
【问题讨论】:
-
为什么不使用
open打开一个文件并以正常方式写入? -
我正在尝试了解 subprocess 的工作原理
-
也许从一个更简单的问题开始,比如调用
ls或date之类的命令并查看它的输出? -
@DeveshKumarSingh 我试过了。
标签: python subprocess