У меня есть интерактивная консольная программа, из которой мне нужно извлечь данные.Я ввожу идентификационный номер, и он печатает около 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 ...
Сейчас требуется 18 секунд, чтобысделать 100 итераций цикла.Я попытался удалить всю часть кода "... process text ...", и это не изменило скорость.Мой C занимает менее секунды, чтобы обработать 2500 итераций.Я также пытался реализовать с использованием QProcess, и это также завершается менее чем за секунду.