python管道怎么使用_python中管道用法入门实例
python中管道用法入门实例
本文实例讲述了python中管道用法。分享给大家供大家参考。具体如下:
#!coding=utf-8
import multiprocessing
def consumer(pipe):
output_p , input_p = pipe
input_p.close() #关闭管道的输入端
while True:
try:
item = output_p.recv()
except EOFError:
break
print item
print ("consumer done")
#生产项目并将其放到队列上
def producer(sequence, input_p):
for item in sequence:
input_p.send(item)
if __name__ == "__main__":
#创建管道
(output_p , input_p ) = multiprocessing.Pipe()
#启动使用者进程
cons_p = multiprocessing.Process(target=consumer, args=((output_p , input_p ),))
cons_p.start()
#关闭生产者中的输出管道
output_p.close()
#生产项目
sequence = [1,2,3,4]
producer(sequence, input_p)
#关闭输入管道,表示完成
input_p.close()
#等待使用者进行关闭
cons_p.join()
希望本文所述对大家的Python程序设计有所帮助。
时间: 2015-06-02
Linux中进程的通信方式有信号,管道,共享内存,消息队列socket等.其中管道是*nix系统进程间通信的最古老形式,所有*nix都提供这种通信方式.管道是一种半双工的通信机制,也就是说,它只能一端用来读,另外一端用来写:另外,管道只能用来在具有公共祖先的两个进程之间通信.管道通信遵循先进先出的原理,并且数据只能被读取一次,当此段数据被读取后,马上会从数据中消失,这一点很重要. Linux上,创建管道使用pipe函数,当它执行后,会产生两个文件描述符,分别为读端和写端.单个进程中的管道几乎没有
匿名管道 管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端. os.pipe()返回2个文件描述符(r, w),表示可读的和可写的.示例代码如下: 复制代码 代码如下: #!/usr/bin/python import time import os def child(wpipe): print('hello from child', os.getpid()) while True:
本文实例讲述了Python实现处理管道的方法.分享给大家供大家参考.具体分析如下: Linux下的可以施展的最炫的魔法是什么?相信不同的人说法不同,但是如果没有管道,那么恐怕在绚丽魔法的都会失去魔力 这里就介绍怎么使用Python来处理这些管道 管道调用子程序 我们想在程序中使用一个子程序,但是需要动态的传递参数(这里说的动态,是指根据上次子程序输入的结果来决定这次输入什么),怎么办呢,不用慌,有subprocess! 下文我先介绍一个例子代码,以及他的输出结果! #!/usr/bin/pyth
multiprocessing.Pipe([duplex]) 返回2个连接对象(conn1, conn2),代表管道的两端,默认是双向通信.如果duplex=False,conn1只能用来接收消息,conn2只能用来发送消息.不同于os.open之处在于os.pipe()返回2个文件描述符(r, w),表示可读的和可写的 实例如下: 复制代码 代码如下: #!/usr/bin/python #coding=utf-8 import os from multiprocessing import P
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致.相比于time模块,datetime模块的接口则更直观.更容易调用. 1.datetime中包含三个类date ,time,datetime 函数datetime.combine(date,time)可以得到dateime,datetime.date().datetime.time()可以获得date和time 2.d
代码: #!/usr/bin/python # -*- coding: UTF-8 -*- # get annotation object bndbox location import os import cv2 try: import xml.etree.cElementTree as ET #解析xml的c语言版的模块 except ImportError: import xml.etree.ElementTree as ET ##get object annotation bndbox l
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序. 一个排列中逆序的总数就称为这个排列的逆序数. 一个排列中所有逆序总数叫做这个排列的逆序数. 也就是说,对于n个不同的元素,先规定各元素之间有一个标准次序(例如n个 不同的自然数,可规定从小到大为标准次序),于是在这n个元素的任一排列中,当某两个元素的先后次序与标准次序不同时,就说有1个逆序. 一个排列中所有逆序总数叫做这个排列的逆序数. Python代码: def inverse_number(s
一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程. Python提供了multiprocessing. multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似. multiprocessing模块的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,
Json模块dumps.loads.dump.load函数介绍 1.json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数. import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} jsObj = json.dumps(name_emb) print(name_emb) print(jsOb
在开始之前,首先要说明这几点: 1.在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平台可能有所不同.2.UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST(Daylight Saving Time)即夏令时.3.时间戳(timestamp)的方式:通常来说,时间戳表示的是从1
今天对接一个海康监控的sdk,其中sdk 是以aar的形式提供的,并且我需要用到此aar的模块是个library.所以按照正常的在application模块中引入aar的方式一致报错,首先提示要关闭offline ,然后关闭了还是会提示错误.想了很久不明白.最终通过公司前辈的指导,正确的引入了aar. 1.除了和正常的aar的引入方式外,我们还需要在application所在模块的build.gradle文件中加入如下一段: repositories { flatDir { dirs 'libs
pprint的英文全称Data pretty printer,顾名思义就是让显示结果更漂亮. print()和pprint()都是python的打印模块,功能基本一样,唯一的区别就是pprint()模块打印出来的数据结构更加完整,每行为一个数据结构,更加方便阅读打印输出结果.特别是对于特别长的数据打印,print()输出结果都在一行,不方便查看,而pprint()采用分行打印输出,所以对于数据结构比较复杂.数据长度较长的数据,适合采用pprint()打印方式.当然,一般情况多数采用print()
看了oschina上的两个代码,受益匪浅.其中对join()方法不理解,看python官网文档的介绍: join([timeout]):等待直到进程结束.这将阻塞正在调用的线程,直到被调用join()方法的线程结束.(好难翻译,应该是这个意思) 哈哈,这个易懂. join方法,如果一个线程或者一个函数在执行过程中要调用另外一个线程,并且待到其完成以后才能接着执行,那么在调用这个线程时可以使用被调用线程的join方法. 复制代码 代码如下: #-*- encoding: gb2312 -*- im
python管道怎么使用_python中管道用法入门实例相关推荐
- python的empty函数_python中numpy.empty()函数实例讲解
在使用python编程的过程中,想要快速的创建ndarray数组,可以使用numpy.empty()函数.numpy.empty()函数所创建的数组内所有元素均为空,没有实际意义,所以它也是创建数组最 ...
- python输出变量代码_Python中变量的输入输出实例代码详解
1.变量的输入: input函数: input() input("请输入银行卡密码") password = input("请输入银行卡密码") 变量名 = i ...
- python默认参数举例_Python中的默认参数实例分析
本文研究的主要是Python中的默认参数的相关内容,具体如下. 熟悉C++语言的可以知道,C++语言中的默认参数是写在函数声明中的,为语法糖,与函数的调用无关,是在函数调用的时候由编译器补齐参数然后进 ...
- python迭代器创建序列_Python 中迭代器与生成器实例详解
Python 中迭代器与生成器实例详解 本文通过针对不同应用场景及其解决方案的方式,总结了Python中迭代器与生成器的一些相关知识,具体如下: 1.手动遍历迭代器 应用场景:想遍历一个可迭代对象中的 ...
- python decimal类型转化_python中的decimal类型转换实例详解
[Python标准库]decimal--定点数和浮点数的数学运算 作用:使用定点数和浮点数的小数运算. Python 版本:2.4 及以后版本 decimal 模块实现了定点和浮点算术运算符,使用的是 ...
- python定义数组变量_python中数组用法
增加时a.append( 'a ')就可以了.只要按顺序加,就没有问题 . 使用时,完全可以使用下标: 代码如下 复制代码 a[0] a[1] 但出果引用不存在的下标,则会引发异常.这时,你需要先添加 ...
- python算法和数据结构_Python中的数据结构和算法
python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...
- python管道界面_python中管道用法入门实例
本文实例讲述了python中管道用法.分享给大家供大家参考.具体如下: #!coding=utf-8 import multiprocessing def consumer(pipe): output ...
- python中result的用法_Python中qutip用法示例详解
前言 QuTip是用于模拟开放量子系统动力学的开源库.QuTip库依赖于的Numpy.Scipy和Cython的数值包.此外,matplotlib提供了图形输出.http://qutip.org/. ...
最新文章
- symfony2是什么?
- 16个实用终端命令CLI
- python个人项目-软工作业个人项目wc.exe(python实现)
- 就业模拟试题_Net(答案)
- at命令不生效 linux_【干货】你不知道的 Linux 命令使用技巧
- 【数组】—冒泡排序选择排序---【巷子】
- 新建和删除文件夹js代码
- yaml与json的对比
- 7.Java反射面试题
- 分销商城系统源码开发
- ArcGIS上海市行政区划图制作(附练习数据下载)
- 访问小米路由器内置硬盘
- 终于把所有的 Python 库都整理出来啦
- html5橡皮擦,用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
- ipad和iphone切图_如何在iPhone和iPad上使用触控板模式选择文本
- 漏洞系列一一看我一招征服漏洞SSRF
- 微信小程序通过服务号推送模板消息
- Spring框架中的Bean
- 递归算法转换成非递归算法
- exchange2007+outlook2007,无法使用外出助理
热门文章
- Android学习笔记----18_在SQLite中使用事务
- linux快速删除海量文件
- 堆内存里的各种奇怪填充值
- 随想录(我熟知的几个实时操作系统)
- 用汇编的眼光看C++(之指针1)
- php 打印请求体,php如何获取原生请求体
- 法国spin高等计算机学校,spin-去展网
- html5 在新标签页打开,Chrome,Javascript,window。在新标签页中打开
- 软件的接口设计图_基于GJB 5000A的软件配置管理研究与系统实现
- loader 编写一个android_Android之Loader理解