工程中经常需要跨语言调用各种接口、exe文件。今天介绍一下python调用C++的.exe的过程。
python有很多现成的包调用exe可执行文件,我使用的os.system这个包。想了解其他方式的朋友,可以去搜一下相关的帖子,有很多。
开始干货:
1. c++的exe可执行程序通常有依赖的dll,首先把他们打包到一起,放在一个文件夹中。这样保证exe可正确执行
2.调用过程,上代码
para = "%s %s %s %s %s %s"%("sly\\learn.exe",freq, cost, TEMPLATE_PATH, TSV_CORPUS_PATH, CRF_MODEL_PATH)
os.system(para)
注意:
如果是windows系统,exe所在路径需要使用“\\”,如:"sly\\learn.exe",否则会报错
如果传入的参数中带有 -f 等选项,可按如下方式指定:
para = "%s -f %s -c %s %s %s %s -t"%("sly\\learn.exe",freq, cost, TEMPLATE_PATH, TSV_CORPUS_PATH, CRF_MODEL_PATH)
其中,-f 对应 exe接收的第二个参数:freq。以此类推。
-t 可不对应后面的任何一个参数,此时将其放在最后即可。