我对 Python 的 subprocess.Popen 有一个非常奇怪的问题。我正在使用它多次调用外部 exe 并将输出保存在列表中。
每次调用这个外部 exe 时,它都会返回一个不同的字符串。但是,如果我使用 Popen 多次调用它,它总是会返回 SAME string。=:-O
看起来 Popen 总是从标准输出返回相同的值,而无需调用 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!
我到底做错了什么?!