cnki-downloader.exe

这是一个命令行程序,所以我认为它和MSVC构建的普通Windows命令行程序是一样的。我的代码是这样的:

# coding=gbk

from subprocess import Popen, PIPE

p = Popen(["cnki-downloader.exe"], stdin=PIPE, stdout=PIPE)
#p = Popen(["WlanHelper.exe"], stdin=PIPE, stdout=PIPE )

p.stdin.write( 'XXXXXX\n' )
result1 = p.stdout.read() # <---- we never return here
print result1

p.stdin.write( '1\n' )
result2 = p.stdout.read()
print result2
cnki-downloader.exePopenWlanHelper.exe
<> P> Golang的可执行文件的命令行机制与本地C/C++程序不同,其他语言(如Python)调用和交互很难。在

所以我想知道如何在Windows上用Python等其他语言与Golang可执行文件交互?。如果这是不可能的,我也可以考虑修改Golang程序的源代码(因为它是开源的)。但我希望我不会走那一步。谢谢!在

注意:

如果可能,我希望直接调用这个Golang可执行文件,而不是将其修改到库中并让Python导入它。如果我必须将Golang修改成一个库,为什么不干脆去掉交互方式,把所有的东西都变成命令行参数呢?没有必要费心去写一个果郎图书馆。所以请假设Golang程序是封闭源代码的。我不认为Python无法调用命令行Golang程序。如果是这样,那么我认为Golang真的在与其他语言的互操作性方面需要改进。在