Python の subprocess.Popen で非常に奇妙な問題が発生しています。私はそれを使用して外部exeを数回呼び出し、出力をリストに保持しています。
この外部 exe を呼び出すたびに、異なる文字列が返されます。ただし、Popen を使用して何度か呼び出すと、常にSAME string が返されます。=:-O
exeをリコールせずに、Popenがstdoutから常に同じ値を返しているようです。実際に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!
いったい私は何を間違っているのでしょうか?!