如何从python代码生成文档看起来像“python shell输出”

时间:2012-02-15 10:08:15

标签: python documentation

我想运行一些python代码,例如example.py 我不想手动将代码输入到Python shell中,因为它很慢:

x = 1
x
y = 2
y + x
y

我想实现这样的输出:

>>> x = 1
>>> x
1
>>> y = 2
>>> y + x
3
>>> y
2

看起来很容易回答,但很难找到如何做到这一点。

由于存在一些问题,这不是模式来记录“大代码”,用于记录/测试代码段/示例

4 个答案:

答案 0 :(得分:4)

您可以使用InteractiveConsole模块中的code执行此操作,支持多行

import code

console = code.InteractiveConsole()

more_input = False
with open('example.py') as source:
    for line in source:
        if not more_input:
            print('>>> ' + line.rstrip())
        else:
            print('... ' + line.rstrip())

        more_input = console.push(line)

如果您想知道more_input旗帜的工作原理,请查看doc

  

InteractiveConsole.push(line):

     
    

[...]如果需要更多输入,则返回值为 True ,如果以某种方式处理该行,则返回 False (这与{ {1}})。

  

我在runsource()上测试它看起来像:

example.py

结果是:

x = 1
x
y = 2
y + x

a = (
    1,
    2,
    3
    )
print(a)

答案 1 :(得分:2)

您可以尝试这样的事情:

f = open('example.py', 'r')

for line in f:
  print('>>> ' + line)
  try:
    print(eval(line))
  except SyntaxError:
    exec(line)

答案 2 :(得分:0)

假设它在当前目录中:

execfile('example.py')

请参阅execfile()文档。

答案 3 :(得分:-1)

我不知道这样做的方法。但您不必手动输入 - 只需复制和放大即可。粘贴...