You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何运行Python源文件并生成交互式风格的输入输出日志

实现Python脚本生成交互式风格日志的方法

要让Python脚本运行后生成带>>>/...提示符、包含输入与输出的日志,可通过以下几种方式实现:

方法一:用IPython快速实现(推荐)

如果你的环境安装了IPython,这是最简便的方案,直接运行以下命令即可生成符合要求的输出:

ipython --no-banner -c "%run -i temp.py"
  • --no-banner:去掉IPython的欢迎启动信息
  • %run -i:以交互模式执行脚本,会自动按照交互式会话的格式输出每一行代码(带对应提示符)和执行结果

运行你的示例temp.py,输出完全匹配你期望的格式:

>>> 1+1
2
>>> if True:
...     print('True')
...
True
>>> msg = "Hello, world!"
>>> print(msg)
Hello, world!

方法二:用Python标准库自定义脚本(无额外依赖)

如果无法安装IPython,可编写一个简单的脚本利用code模块实现需求,创建pyinteract.py文件:

import sys
import code

def run_with_prompt(script_path):
    with open(script_path, 'r') as f:
        lines = f.readlines()
    
    console = code.InteractiveConsole()
    for line in lines:
        stripped_line = line.rstrip()
        if not stripped_line:
            print()
            continue
        # 根据缩进判断提示符
        if line.startswith((' ', '\t')):
            print(f"... {stripped_line}")
        else:
            print(f">>> {stripped_line}")
        # 执行当前行代码
        console.push(line)

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print(f"用法: python {sys.argv[0]} <目标脚本.py>")
        sys.exit(1)
    run_with_prompt(sys.argv[1])

然后运行:

python pyinteract.py temp.py

该脚本会逐行解析目标文件,根据代码缩进自动添加>>>或...提示符,同时执行代码并输出结果,支持复杂脚本文件。

方法三:用Unix script命令记录会话(需后期清理)

在类Unix系统下,可通过script命令捕获Python交互会话的输出:

script -q -c "python -i temp.py" python_log.txt
  • -q:静默模式,不显示script命令本身的提示信息
  • -c:指定要执行的命令
    执行完成后,打开python_log.txt,手动删除末尾的exit()相关行即可得到目标日志。

为什么之前的方法无效?

你尝试的cat temp.py | python或python < temp.py是将脚本作为标准输入传入Python,此时Python以非交互模式执行,只会输出代码运行结果,不会生成交互式提示符和输入行记录。

内容的提问来源于stack exchange,提问作者chan1142

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:57:28