a=subprocess.Popen(execution, bufsize=0, stdout=PIPE, stdin=PIPE, stderr=STDOUT, shell=False) con=a.stdout.readline() if (con.decode("utf-8").count("FATAL ERROR: Network error: Connection timed out")==0): a.stdi
通过打印发现,应该是在 pipe.stdin.write 结束之后。 应该就是在执行 self.pipe.stdin.write (‘% s\n’ % command) results = self.pipe.stdout.readline().strip()。 但是添加 sleep 0.05 毫秒可以明显减少卡顿次数,但是无法根除。可能频率下降 30% 或 50%。
obj= subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) obj.stdin.write(b"print(1);")#无;会有报错 obj.stdin.write(b"print(2);")#无; obj.stdin.write(b"print(3);")#无; obj.stdin.write(b"print(4);")#无; obj.stdin.close() cmd_...
若PopenObject中stdin为PIPE,则返回一个可写流对象;若encoding或errors参数被指定或universal_newlines参数为True,则此流是一个文件流,否则为字节流。 若PopenObject中stdin不是PIPE,则属性为None。 stdin输入流非None,可执行写操作即PopenObject.stdin.write(s) PopenObject.stdout: 若PopenObject中stdout为PIPE,则返...
line = sys.stdin.readline() print 'test',line #run.py from subprocess import * p =Popen('./test1.py',stdin=PIPE,stdout=PIPE) p.stdin.write('say hi/n') print p.stdout.readline() #result test say hi 1. 2. 3. 4. 5.
如果要设置管道允许调用程序将数据写入管道,需要将 stdin 设置为 pipe。 import subprocess print('write:') proc = subprocess.Popen( ['cat', '-'], stdin=subprocess.PIPE, ) proc.communicate('stdin: to stdin\n'.encode('utf-8')) 输出
二者区别很简单:1、subproc.stdin.write不会输出 2、subproc.communicate会输出
# 写入数据到标准输入 process.stdin.write("print('Hello from child process')\n") process.stdin....
obj=subprocess.Popen(["python"],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)obj.stdin.write('print 1 \n')obj.stdin.write('print 2 \n')obj.stdin.write('print 3 \n')obj.stdin.write('print 4 \n')obj.stdin.close()cmd_out=obj.stdout.read()obj.stdout.close()cmd...
subproc.stdin.write不会输出 subproc.communicate会输出