Python脚本与win32程序(Delphi开发)之间的通信
我刚开始学Python,想让我的Python脚本能和我用Delphi开发的Windows程序进行沟通。
简单来说,Python脚本会从其他数据源下载一组数据,然后对于每一条下载的记录,我会记录下来并告诉Windows程序。我打算使用Python自带的日志库来记录这些信息,但我想知道有什么最简单的方法可以让win32程序知道这些信息,这样我就能把下载的过程展示给最终用户。
注意:我知道有个叫Python4Delphi的东西,但它的文档不太好,我想保持事情简单。
编辑1:只会有一个Delphi的可执行文件和多个Python脚本。
谢谢。
5 个回答
1
你可以使用命名管道或套接字来让Python代码和Delphi代码之间进行通信。要在Python中使用命名管道,你可以用ctypes这个工具(示例可以在这里找到)。
另外,你也可以在Delphi中创建一个COM组件,然后从Python中调用它(ActivePython包含了你需要的所有Windows相关的东西)。
1
可以使用 PyWin32 这个包:http://pypi.python.org/pypi/pywin32。这个包让你可以访问整个 Windows API。
比如,你可以使用 COM 技术:http://docs.activestate.com/activepython/2.7/pywin32/html/com/win32com/HTML/docindex.html
3
如果你的Delphi程序是用来执行Python程序的,那么你可以让这个Python脚本直接把进度信息输出到标准输出上。这样,你就可以在你的Delphi程序里读取这些信息。(用这种方式的话,Python和Delphi之间的语言差异就不重要了。无论是哪个程序,你都可以用你喜欢的任何语言来编写。)