基于stdio的进程间通信

simple-ipc的Python项目详细描述


简易工控机

基于stdio的进程间通信

Python VersionPyPI VersionLicense

进程间通信的简单python接口,异步方式 在运行时与外部程序交换数据。内部机制起作用 通过将数据写入stdout并使用多线程从stdin读取数据。在

安装

pip install simple-ipc

使用

首先导入模块:

  • import ipc
  • from ipc import Worker

参数

Worker(command, callback=None, start=True, verbose=False)
  • command可执行文件的路径以及可选参数

    • list:可能包含空格
    • str:不支持空格
  • callback(可选)接收到新数据后调用的函数

    • 必须只接受一个参数
  • start(可选)创建时自动启动工作进程

  • verbose(可选)打印状态消息

示例

^{pr2}$
withWorker('program.exe',verbose=True)asworker:...
Worker('path/to/program.exe arg',lambdadata:print(data))

worker对象

所有数据将在内部转换为str类型。在

方法
  • start()启动工作进程
  • send(data)将数据发送到外部进程
  • stop()启动所有线程的终止并清除所有数据

属性

  • running指示工作进程(只读)
  • data包含最新的值(只读)

示例程序

fromrandomimportrandintfromipcimportWorkerdefprocess(data):ifint(data)==5:print('Process data...')worker=Worker('program.exe',process)whileworker.running:number=randint(1,10)worker.send(number)print(f'Data: {worker.data}')

可以找到更多示例代码here。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
主类中的java访问方法   Javalog4j不读取它的log4j。属性文件   雅加达ee通过Java(web应用程序)使用iText/任何其他使用现成数据的库生成PDF报告   lua使用java阅读TeamSpeak 3消息   将日期转换为BST java   java Spring引用ProxyFactoryBean中带有ref的protoyype bean   如何使java只打印一条带有if语句的消息   java如何通过JavaMail从雅虎服务器发送电子邮件?   使用百分比和BigDecimal的java测试   java如何对字符串数组排序   java验证器+MVC+REST::更新问题   java如何阻止eclipse如此频繁地挂起?   java从AsyncTask(片段内)访问TextView   IDEJava:制作可调整大小和拖动的组件