我正在处理可执行文件的GUI版本。该文件有一个选项
exefile --output output.txt
我的任务不是保存到output.txt,但是可以使用文件中的一些信息来绘制图表吗?我有一些想法使用pyqtgraph绘制图形。问题是如何将其作为文本流?有什么想法吗?
第二个问题相似但更难。同一个可执行文件也可以输出到.wav
exefile --outwav outwav.wav
而不是保存.wav文件,如何以“实时”方式绘制出来? 非常感谢。
注意:
我的目的是构建一个包装器,我在可执行文件中没有任何控件。
理想情况下,可执行文件应该连续运行,而我会在时间内绘制输出/波形
答案 0 :(得分:4)
假设:
exefile
无法做您想做的事情exefile
最佳选择是使用named pipe。
这就像一个临时文件,但不会碰到硬盘 - 一切都在内存中发生。它比临时文件有几个优点:
exefile
何时完成写作。您可以使用os.mkfifo
创建命名管道。从它读取就像你从普通文件中读取一样。
请注意,如果写入命名管道的速度比程序读取速度快,exefile
会定期进行I / O阻塞。同样,如果读取速度超过exefile
写入速度,则程序将阻止I / O.
答案 1 :(得分:1)
我认为最好的方法是写入临时文件,然后在需要的地方读取它。在python中很容易做到:
from tempfile import NamedTemporaryFile
f = NamedTemporaryFile() # this is file object you will read from
f.name # and here you can get it's name
# here is simple way to run your command
import os
exit_code = os.system("execfile --output %s" % (f.name,))
if not exit_code:
data = f.read()
else:
print "Oooops. exit code = %s" % (exit_code,)
查看doc了解详情。