python执行子进程实现进程间通信的方法

本文实例讲述了python执行子进程实现进程间通信的方法。分享给大家供大家参考。具体实现方法如下:

a.py:

import subprocess, time
subproc = subprocess.Popen(['c:\python31\python.exe', 'c:/b.py'], stdin=subprocess.PIPE, shell=True)
time.sleep(0.5)
print('start')
subproc.stdin.write('data\n')
subproc.communicate('data\n')
print('end')

b.py:

import sys
print('receive...')
s = sys.stdin.readline()
print('get:', len(s), s)

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • Python多进程通信Queue、Pipe、Value、Array实例

    queue和pipe的区别: pipe用来在两个进程间通信.queue用来在多个进程间实现通信. 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法. 1)Queue & JoinableQueue queue用来在进程间传递消息,任何可以pickle-able的对象都可以在加入到queue. multiprocessing.JoinableQueue 是 Queue的子类,增加了task_done()和join()方法. task_done()用来告诉queue一个tas

  • Python进程间通信之共享内存详解

    前一篇博客说了怎样通过命名管道实现进程间通信,但是要在windows是使用命名管道,需要使用python调研windows api,太麻烦,于是想到是不是可以通过共享内存的方式来实现.查了一下,Python中可以使用mmap模块来实现这一功能. Python中的mmap模块是通过映射同一个普通文件实现共享内存的.文件被映射到进程地址空间后,进程可以像访问内存一样对文件进行访问. 不过,mmap在linux和windows上的API有些许的不一样,具体细节可以查看mmap的文档. 下面看一个例子:

  • 详解Python进程间通信之命名管道

    管道是一种简单的FIFO通信信道,它是单向通信的. 通常启动进程创建一个管道,然后这个进程创建一个或者多个进程子进程接受管道信息,由于管道是单向通信,所以经常需要创建两个管道来实现双向通信. 命名管道是对传统管道的扩展,默认的管道是匿名管道,只在程序运行时存在:而命名管道是持久化的,当不需要时需要删除它. 命名管道使用文件系统,由mkfifo()方法创建.一旦创建了,两个独立的进程都可以访问它,一个读,另外一个写. 命名管道支持阻塞读和阻塞写操作: 如果一个进程打开文件读,它会阻塞直到另外一个进

  • Python进程间通信用法实例

    本文实例讲述了Python进程间通信用法.分享给大家供大家参考.具体如下: #!/usr/bin/env python # -*- coding=utf-8 -*- import multiprocessing def counsumer(input_q): while True: item = input_q.get() #处理项目 print item #此处替换为有用的工作 #发出信号通知任务完成 input_q.task_done() def producer(sequence,outp

  • Python进程通信之匿名管道实例讲解

    匿名管道 管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端. os.pipe()返回2个文件描述符(r, w),表示可读的和可写的.示例代码如下: 复制代码 代码如下: #!/usr/bin/python import time import os def child(wpipe):     print('hello from child', os.getpid())     while True:   

  • python实现进程间通信简单实例

    本文实例讲解了python实现两个程序之间通信的方法,具体方法如下: 该实例采用socket实现,与socket网络编程不一样的是socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)的第一个参数是socket.AF_UNIX 而不是 socket.AF_INET 例中两个python程序 s.py/c.py 要先运行s.py 基于fedora13/python2.6测试,成功实现! s.py代码如下: #!/usr/bin/env python im

  • python 多进程通信模块的简单实现

    多进程通信方法好多,不一而数.刚才试python封装好嘅多进程通信模块 multiprocessing.connection. 简单测试咗一下,效率还可以,应该系对socket封装,效率可以达到4krps,可以满足好多方面嘅需求啦. 附代码如下: client 复制代码 代码如下: #!/usr/bin/python# -*- coding: utf-8 -*-""" download - slave"""__author__ = 'Zagfai

  • python执行子进程实现进程间通信的方法

    本文实例讲述了python执行子进程实现进程间通信的方法.分享给大家供大家参考.具体实现方法如下: a.py: import subprocess, time subproc = subprocess.Popen(['c:\python31\python.exe', 'c:/b.py'], stdin=subprocess.PIPE, shell=True) time.sleep(0.5) print('start') subproc.stdin.write('data\n') subproc.

  • python 执行函数的九种方法

    方法一:直接调用函数运行 这种是最简单且直观的方法 def task():     print("running task") task() 如果是在类中,也是如此 class Task:     def task(self):         print("running task") Task().task() 方法二:使用偏函数来执行 在 functools 这个内置库中,有一个 partial 方法专门用来生成偏函数. def power(x, n):   

  • python执行使用shell命令方法分享

    1. os.system(shell_command) 直接在终端输出执行结果,返回执行状态0,1 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示.这实际上是使用C标准库函数system()实现的. 缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果. os.system('cat /etc/passwdqc.conf') 2. os.popen()

  • python执行等待程序直到第二天零点的方法

    本文实例讲述了python执行等待程序直到第二天零点的方法.分享给大家供大家参考.具体分析如下: 如果需要通过python每天凌晨定时执行执行程序,可以使用下面的代码进行等待操作,无论什么时候执行系统都会等待到第二天凌晨才执行后面的程序. def waitToTomorrow(): """Wait to tommorow 00:00 am""" tomorrow = datetime.datetime.replace(datetime.datet

  • python执行shell获取硬件参数写入mysql的方法

    本文实例讲述了python执行shell获取硬件参数写入mysql的方法.分享给大家供大家参考.具体分析如下: 最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python执行shell获取这些信息,python执行shell脚本有以下三种方法: 1. os.system() 复制代码 代码如下: os.system('ls') #返回结果0或者1,不能得到

  • python执行get提交的方法

    本文实例讲述了python执行get提交的方法.分享给大家供大家参考.具体如下: import sys, urllib2, urllib def addGETdata(url, data): """Adds data to url. Data should be a list or tuple consisting of 2-item lists or tuples of the form: (key, value). Items that have no key shoul

  • python执行CMD指令,并获取返回的方法

    如下所示: result = os.popen('ps aux') res = result.read() for line in res.splitlines(): print line 以上这篇python执行CMD指令,并获取返回的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python执行scp命令拷贝文件及文件夹到远程主机的目录方法

    系统环境centos7 python2.7 先在操作系统安装expect [root@V71 python]# vi 3s.py #!/usr/bin/python #coding:utf-8 import sys,re import os import subprocess #scp file to remote node. def scpFileToRemoteNode(user,ip,password,localsource,remotedest,port=22): SCP_CMD_BAS

  • Python 实现某个功能每隔一段时间被执行一次的功能方法

    本人在做项目的时候遇到一个问题: 某个函数需要在每个小时的 3 分钟时候被执行一次,我希望我 15:45 启动程序,过了18 分钟在 16:03 这个函数被执行一次,下一次过 60 分钟在 17:03 再次被执行,下一次 18:03,以此类推. 以下是我基于 Timer 做的再封装实现了此功能. # -*- coding: utf-8 -*- # ================================================== # 对 Timer 做以下再封装的目的是:当某个

  • python等待10秒执行下一命令的方法

    python等待10秒执行下一命令的方法: 首先导入时间(time)模块: 然后在需要等待执行的命令前调用sleep()方法,并在方法的括号里将等待时间设置为10秒即可. import time print '10秒前' time.sleep(10) print '10秒后' 先打印10秒前,等待10秒后,打印10秒后. 内容扩展: 不用多线程的话,可以用信号来解决这个问题. # -*- coding: utf-8 -*- import signal class InputTimeoutErro

随机推荐