我正在(wx)python中编写一个Filemanager - 已经有很多工作了。复制文件时,已有进度对话框,覆盖处理等。
现在在Vista中,当用户想要将文件复制到某些目录(例如%Program Files%)时,应用程序/脚本需要提升,这在运行时是无法提出的。所以我必须启动另一个提升的应用程序/脚本,它完成工作,但需要与主应用程序通信,因此后者可以更新进度等。
我搜索并发现很多文章说共享内存和管道是最简单的方法。所以我正在寻找的是一个“高级”平台独立的ipc库,使用共享内存或管道进行python绑定。
我已经找到了ominORB,fnorb等。它们看起来很有趣,但是使用TCP / IP,是否有使用共享内存或管道的等效lib?由于ipc-client始终位于同一台机器上,因此套接字似乎不是必需的。而且我也害怕用户必须在他/她的个人防火墙上允许ipc-socket-communications。
编辑:我的意思是高级别:能够像使用omniORB而不是将字符串发送到stdin / stdout那样调用某些函数会很棒。
答案 0 :(得分:2)
如何使用stdin / stdout与第二个进程通信?
由于输入和输出缓冲有一些警告,但请查看this Python Cookbook recipe以及Pexpect,了解如何执行此操作。