我有一个交互式控制台程序,需要从中提取数据。我输入一个ID号,它会打印出大约10行阅读的文字,然后重复我的操作。我之前编写了一个C程序并使用了QProcess。我正在将代码移植到python。我不能使用popen.communicate,因为它是交互式的(我需要发送多个输入)。
代码是这样的:
import pexpect
p=pexpect.spawn(exe_path)
for idnumber in idlist:
p.write(idnumber)
p.expect("Enter ID number:")
text=p.before
... process text ...
现在,执行循环100次迭代需要18秒。我尝试删除我代码中的所有“ ...过程文本...”部分,但并没有改变速度。我的C用不到一秒钟的时间即可处理2500次迭代。我也尝试过使用QProcess来实现,并且还可以在不到一秒钟的时间内完成。