我想做类似的事情:
do lots of stuff to prepare a good environement
become_interactive
#wait for Ctrl-D
automatically clean up
python有可能吗?如果没有,你有没有看到另一种做同样事情的方法?
我想做类似的事情:
do lots of stuff to prepare a good environement
become_interactive
#wait for Ctrl-D
automatically clean up
python有可能吗?如果没有,你有没有看到另一种做同样事情的方法?
启动 Python 时使用 -i 标志,并设置 atexit 处理程序在清理时运行。
文件脚本.py:
import atexit
def cleanup():
print "Goodbye"
atexit.register(cleanup)
print "Hello"
然后你只需使用 -i 标志启动 Python:
C:\temp>\python26\python -i script.py
Hello
>>> print "interactive"
interactive
>>> ^Z
Goodbye
该code
模块将允许您启动 Python REPL。
详细说明 IVA 的答案: embedding-a-shell、code
incoporating 和 Ipython。
def prompt(vars=None, message="welcome to the shell" ):
#prompt_message = "Welcome! Useful: G is the graph, DB, C"
prompt_message = message
try:
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed(argv=[''],banner=prompt_message,exit_msg="Goodbye")
return ipshell
except ImportError:
if vars is None: vars=globals()
import code
import rlcompleter
import readline
readline.parse_and_bind("tab: complete")
# calling this with globals ensures we can see the environment
print prompt_message
shell = code.InteractiveConsole(vars)
return shell.interact
p = prompt()
p()
不完全是您想要的东西,但 python-i
将在执行脚本后启动交互式提示。
-i
:在运行脚本后进行交互检查,(也是 PYTHONINSPECT=x)并强制提示,即使标准输入看起来不是终端
$ python -i your-script.py
Python 2.5.4 (r254:67916, Jan 20 2010, 21:44:03)
...
>>>
你可以调用 python 本身:
import subprocess
print "Hola"
subprocess.call(["python"],shell=True)
print "Adios"