gpt4 book ai didi

python - 使用 os.execl 替换进程时如何重定向标准输入/标准输出/标准错误

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:13 24 4
gpt4 key购买 nike

考虑以下示例脚本:

import os
import sys

print(1)
os.execl(sys.executable, sys.executable, '-c', 'print(2)')
print(3)

结果是

1

我很期待

1
2

我认为这是因为替换过程没有使用相同的标准输入/标准输出/标准错误?

如何在使用 execl 时实现我的预期目标?

我在 Windows 上使用 Python 3.6。

最佳答案

这不是关于 PyCharm 的错误,因为我也无法用 IDEA 重现它。 IDEA 使用与 PyCharm 相同的内核。

这是因为您启动脚本的方式。如果您使用 Run 启动您的脚本,它就可以运行。如果您使用 Debug 启动它,它不会。

因为 Run 只是在终端中运行脚本,而 Debug 将启动调试器并将该进程连接到该调试器。您看到的输出实际上来自调试器,而不是直接来自您的脚本。当您替换您的进程时,调试器不会重建与该新创建进程的连接。

这就是为什么你没有得到 2 输出。

关于python - 使用 os.execl 替换进程时如何重定向标准输入/标准输出/标准错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851091/

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