gpt4 book ai didi

Python 的 subprocess.Popen 返回相同的标准输出,即使它不应该

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:21 26 4
gpt4 key购买 nike

我在使用 Python 的 subprocess.Popen 时遇到了一个非常奇怪的问题。我用它多次调用外部 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!

我究竟做错了什么?!

最佳答案

有可能(如果 C_KEY_MAKER 的随机行为基于以秒为单位的当前时间或类似时间),当您在命令行上运行它两次时,两次运行之间的时间发生了变化所以你会得到不同的输出,但是当 python 运行它时,它会快速连续运行两次,以至于时间没有改变,所以它会连续两次返回相同的值。

关于Python 的 subprocess.Popen 返回相同的标准输出,即使它不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/717120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com