gpt4 book ai didi

python - 如何捕获 stdout/stderr 中的提示?

转载 作者:行者123 更新时间:2023-11-30 22:54:54 25 4
gpt4 key购买 nike

我正在尝试在日志文件中记录用户的终端 session ;相当简单,我为 ghci(交互式 Haskell)制作了一个 Python 包装器,如下所示:

#!/usr/bin/env python

import os

cmd = 'ghci 2>&1 | tee hs.log'
os.system(cmd)

但是,这仅捕获打印回给用户的内容,而不是提示/用户输入的内容。因此,如果 session 如下所示:

$ ghci 2>$1 | tee hs.log
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help
Prelude> 1+2
3
Prelude> 3+4
7
Prelude>

hs.log 只有:

$ cat hs.log
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help
3
7

如何在交互式终端 session 期间捕获输出和输入?

最佳答案

您可以使用script命令捕获输入和输出。

cmd = 'script hs.log ghci'

请注意,这会捕获终端的所有原始输入和输出。您将看到所有用户的编辑,如果程序是全屏的,您将看到其所有转义序列以移动光标。有关完整详细信息,请参阅链接文档。

关于python - 如何捕获 stdout/stderr 中的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37624020/

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