私は次のようなことをしたいと思います:
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 ハンドラーを実行するように設定します。
ファイル script.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、incoporatingcode
および 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 も)、stdin が端末のように見えなくてもプロンプトを強制します。
$ 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"