在Python中使用子进程或RPC/REST与其他程序通信?
我遇到了一种情况,有一个用C++写的程序。它就像一个服务器,你需要先启动它。然后在另一个控制台中,你可以通过命令行参数来调用这个程序,它会执行一些操作。此外,它还提供了RPC和基于REST的访问方式。所以你可以写一个RPC或REST的库来和这个服务器进行交互。
所以我想问的是,既然这个程序可以通过简单的命令行参数来管理,使用Python的subprocess模块来构建一个库(包装器)是不是更好?这样做会不会有什么问题呢?
再考虑一个例子。假设我想在任何Linux工具(比如grep)周围构建一个图形用户界面,让用户可以测试正则表达式(就像我们在网站上看到的那样)。那么通过subprocess与grep进行通信不是更简单吗?
谢谢。
1 个回答
1
我觉得我更喜欢使用rpc或rest接口,因为从这些接口得到的结果通常是很容易处理的格式,因为它们是为了机器之间的交互而设计的。不过,命令行接口是为了人和人之间的交互而设计的,这意味着输出对人眼来说很容易理解,但不一定适合其他程序来处理这些输出。