如何在 terminal 运行 python 脚本,显示出 interactive 的结果?

2013-12-18 17:09:56 +08:00
 yangzh
比如说,我有这么一个 test.py:
```
print 'hello world!'
1+1
a=3
a
```

如果我在 terminal 运行的话:
```
$ python test.py
hello world!
```

我想达成这么一个效果,在 terminal 运行:
```
$ magicpython test.py
>>> print 'hello world!'
hello world!
>>> 1+1
2
>>> a=3
>>> a
3
```

我想知道的就是 magicpython 这个程序怎样写。原生的 python 和 ipython 都没有这个效果。
7177 次点击
所在节点    Python
8 条回复
felix021
2013-12-18 19:53:13 +08:00
yangzh
2013-12-18 20:07:31 +08:00
@felix021 这位仁兄亲自操刀一个。真是感动。虽然我以为会有什么库是支持这个需求的。
felix021
2013-12-18 20:36:18 +08:00
@yangzh 纯粹闲的蛋疼。。本来想用pty.spawn来搞的,但是退出不了,所以还是用compiler自己搞。
polythene
2013-12-18 23:15:47 +08:00
@yangzh 如果你调试过python程序,就应该知道pdb这个库正巧满足你的需求
python -m pdb test.py
xiaket
2013-12-19 08:38:24 +08:00
import code
code.interact(local=locals())

代码太短懒得贴gist了, python脚本里这两句就够了.
yangzh
2013-12-19 11:48:45 +08:00
@polythene 这么便捷?!谢谢哈!我不是专业的,只是写了一些段程序,用土办法 print 来调试。

@xiaket 我回家试一下!
yangzh
2013-12-19 11:54:45 +08:00
@polythene 呃,我试了一下,其实和我显示的效果相差挺大的。。。虽然原理应该差不多。
mckelvin
2014-01-18 10:00:47 +08:00
先开python或ipython,再execfile('test.py')

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/93660

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX