这是一个远景,但是......
我正在运行使用gpsbabel.exe调用subprocess.check_output()的python代码。
(有一个python-gpsbabel个套餐,但它似乎没有维护,也没有开箱即用)。
工作示例代码如下所示,我的USB设备连接到串行COM5:
from subprocess import check_output
comport = 5
filename = 'test.gpx'
gps_command = 'gpsbabel -w -t -i mtk -f COM'+str(comport)+' -o gpx -F '+filename
print check_output(gps_command, shell=True)
独立的gpsbabel命令看起来像这样
gpsbabel -w -t -i mtk -f COM5 -o gpx -F test.gpx
两个代码都会在工作目录中创建一个文件test.gpx
。
这是远程的想法 - 我不想将gpsbabel.exe写入文件,而是将test.gpx
的内容写入内存或缓存或虚拟的东西,可以通过python访问。这主要是出于性能原因,因此我不需要花时间编写文件然后重新阅读。
使用Windows批处理是否可以用虚拟内存中对象替换磁盘上的文件?
由于司机,我在Windows上开发 - 但我也愿意接受其他操作系统的创意。
如果不可能,接下来的步骤将是:
自己编译gpsbabel(not so easy)
使用其他工具代替gpsbabel(到目前为止没有找到)
调查劫持python-gpsbabel(虽然它似乎只是我已经在做的事情的包装)