У меня очень странная проблема с подпроцессом Python. Открыть. Я использую его, чтобы несколько раз вызвать внешний exe-файл и сохранить вывод в списке.
Каждый раз, когда вы вызываете этот внешний exe-файл, он возвращает другую строку . Однако, если я вызову его несколько раз с помощью Popen, он всегда будет возвращать одну и ту же строку . =: - O
Похоже, что Popen всегда возвращает одно и то же значение из stdout, не вызывая exe. Может быть, делать какое-то кэширование, фактически не вызывая exe.
Это мой код:
def get_key():
from subprocess import Popen, PIPE
args = [C_KEY_MAKER, '/26', USER_NAME, ENCRYPTION_TEMPLATE, '0', ]
process = Popen(args, stdout=PIPE)
output = process.communicate()[0].strip()
return output
if __name__ == '__main__':
print get_key() # Returns a certain string
print get_key() # Should return another string, but returns the same!
Что, черт возьми, я делаю неправильно?!