我想运行一些python代码,例如example.py 我不想手动将代码输入到Python shell中,因为它很慢:
x = 1
x
y = 2
y + x
y
我想实现这样的输出:
>>> x = 1
>>> x
1
>>> y = 2
>>> y + x
3
>>> y
2
看起来很容易回答,但很难找到如何做到这一点。
由于存在一些问题,这不是模式来记录“大代码”,用于记录/测试代码段/示例!
答案 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)
答案 3 :(得分:-1)
我不知道这样做的方法。但您不必手动输入 - 只需复制和放大即可。粘贴...