我有两个需要相互通信的

python程序(一个是子进程).目前我通过stdin和stdout这样做.然而,写入子进程的标准似乎很慢.

a.py,一个采用任意行输入并打印时间的程序:

from time import time, sleep

from sys import stdout, stdin

while True:

stdin.readline()

stdout.write('%f\n' % time())

stdout.flush()

b.py,一个运行a.py并且花费多长时间才能写入程序的stdin并读取它的stdout的程序:

from time import time

from subprocess import PIPE, Popen

from threading import Thread

stdin_times = []

stdout_times = []

p = Popen(['python', 'a.py'], stdin=PIPE, stdout=PIPE)

for i in range(100000):

t1 = time()

p.stdin.write(b'\n')

p.stdin.flush()

t2 = float(p.stdout.readline().strip().decode())

t3 = time()

stdin_times.append(t2 - t1)

stdout_times.append(t3 - t2)

p.kill()

print('stdin (min/ave):', min(stdin_times), sum(stdin_times) / len(stdin_times))

print('stdout (min/ave):', min(stdout_times), sum(stdout_times) / len(stdout_times))

样品输出:

stdin (min/ave): 1.69277191162e-05 0.000138891274929

stdout (min/ave): 1.78813934326e-05 2.09228754044e-05

我在Ubuntu 10.10上使用Python 3.1.2.

为什么写入an.py的标签比从其stdout读取慢得多?

有没有可以让这两个程序更快地沟通?

python stdin和stdout_stdin似乎比stdout(python)慢得多.为什么?相关推荐

  1. python重复输入上面指令_stdin stdout python:如何重复使用同一输入文...

    我对Python很陌生,对stdin stdout方法甚至更新.不过,我需要使我的脚本可用于UNIX命令,以便例如使用我的脚本一次处理2个输入文件. 该脚本与命令行参数完美配合: newlist = ...

  2. python stdin和stdout_无法使用Python写入和读取stdin / stdout

    我在MacOS 10.7.4上使用Python 2.7.这是一个较长的脚本(不是我写的)的一部分,它基本上为PHP提供了一些配置选项,将它们写入PHP的stdin,然后从它的stdout中读取它们. ...

  3. python stdin什么意思_python中stdin是什么

    python如何判断stdin里面是否有数据 解决方案: select,poll等监视标准输入文件句柄(0),一旦有I/O操作就打印数据 使用sys.stdin.isatty()函数 import s ...

  4. python从标准输入读取数据_在PYTHON中如何从标准输入读取内容stdin

    Python有几种方法来读取标准输入的数据. 1.sys.stdin sys.stdin提供了read()和readline()函数,如果想按一行行来读取,可以考虑使用它:import sys lin ...

  5. python的快速入门-1.1、Python快速入门(0529)

    学习来自马哥教育的视频,感谢马哥 编程语言: 用户: 问题空间 计算机:解决问题 解空间 抽象: 机器代码-->微码编程-->高级语言 (语言的高下级的是根据语言是否被人类容易理解或者更接 ...

  6. python自带的shell是什么-python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  7. python调用node_在node中执行python脚本

    Node.js多进程基础 Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发.这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能. 每个子进程总是带有三个流对象:c ...

  8. python隐藏启动台_如何在Python中启动后台进程?

    如何在Python中启动后台进程? 我正在尝试将shell脚本移植到更易读的python版本. 原始shell脚本在后台使用"&"启动多个进程(实用程序,监视器等). 如何 ...

  9. python程序运行结果不停_关于python:在进程运行时不断打印Subprocess输出

    要从我的python脚本启动程序,我使用以下方法: def execute(command): process = subprocess.Popen(command, shell=True, stdo ...

最新文章

  1. AI实验室•西安站 教你用人脸识别打造爆款应用
  2. 增加ActiveDirectory证书服务器有效期与续订步骤
  3. 网页制作中绝对路径和相对路径的区别
  4. 在Win2003、Win7、XP中配置IIS搭建ASP.NET Web网站或应用程序(1)
  5. 2阶节IIR算法C语言源码
  6. bzoj3527: [Zjoi2014]力 fft
  7. Leetcode每日一题:35.search-insert-position(搜索插入位置)
  8. oracle 密码忘记 找回密码
  9. gateway网关_公司要把网关Zuul换成Gateway,再难也得顶上
  10. cad迷你画图2020中文版
  11. 2008年国际十大财经新闻
  12. C#如何快速释放内存的大数组详解
  13. matlab中fic算法,基于MatLab的三种群Volterra模型数值求解.pdf
  14. android ipad 播放器,[AS3]专业级跨平台网页播放器支持PC、iPad、iPhone、Android系统...
  15. 【报告分享】2021年618全面复盘报告-魔镜市场情报(附下载)
  16. 多文件批量下载打包成.zip
  17. 带孩子看的100部BBC经典纪录片
  18. UTONMOS开启元宇宙数字化经济新纪元
  19. python 中文语音播报,用Python实现语音播报
  20. 计算机软件技术基础2002,2002同济大学计算机软件技术基础试卷

热门文章

  1. python三维模型_python三维模型
  2. qt自定义控件的样式
  3. san分布式共享文件系统_SAN网络存储共享软件全攻略剖析
  4. oracle昨日时间,。。今日,昨日,上周,本月,本年,按时间统计总金额
  5. php乱码调试,NotePad++ 调试PHP代码中文显示乱码
  6. case是java关键字吗_Java关键字
  7. 调用oracle常用方法,区分Oracle和SQL Server常用函数调用方法
  8. android 子module混淆_Android 多模块打包混淆填坑记
  9. jpa mysql存储过程_spring data jpa 如何调用mysql存储过程?
  10. linux下使用odbc连接mysql_Linux环境下通过ODBC访问MSSql Server