16

私は次のようなことをしたいと思います:

do lots of stuff to prepare a good environement
become_interactive
#wait for Ctrl-D
automatically clean up

それはpythonで可能ですか?そうでない場合、同じことを行う別の方法がありますか?

4

6 に答える 6

11

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
于 2010-04-09T17:19:50.433 に答える
9

このcodeモジュールを使用すると、Python REPL を開始できます。

于 2010-04-09T15:44:04.663 に答える
7

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()
于 2010-04-12T04:15:31.967 に答える
5

まさにあなたが望むものではありませんが、Python-iはスクリプトの実行後にインタラクティブなプロンプトを開始します.

-i : スクリプトの実行後にインタラクティブに検査し (PYTHONINSPECT=x も)、stdin が端末のように見えなくてもプロンプトを強制します。

$ python -i your-script.py
Python 2.5.4 (r254:67916, Jan 20 2010, 21:44:03) 
...
>>> 
于 2010-04-09T15:45:31.623 に答える
-1

python 自体を呼び出すことができます:

import subprocess

print "Hola"

subprocess.call(["python"],shell=True)

print "Adios"
于 2010-04-09T15:43:28.063 に答える