web-dev-qa-db-ja.com

Pythonシェルでプログラムを実行します

デモファイルtest.pyがあります。 Windowsコンソールでは、C:\>test.pyでファイルを実行できます。

代わりにPythonシェルでファイルを実行するにはどうすればよいですか?

43
daniel__

Python 2には execfile を使用します。

>>> execfile('C:\\test.py')

Python 3には exec を使用します

>>> exec(open("C:\\test.py").read())
89
phihag

スクリプトを実行してプロンプトで終了する場合(変数を検査できるように)、次を使用します。

python -i test.py

スクリプトが実行され、Pythonインタープリターにドロップされます。

38
Chris Phillips

test.pyの内容によって異なります。適切な構造は次のとおりです。

# suppose this is your 'test.py' file
def main():
 """This function runs the core of your program"""
 print("running main")

if __== "__main__":
 # if you call this script from the command line (the Shell) it will
 # run the 'main' function
 main()

この構造を保持する場合、コマンドラインで次のように実行できます($がコマンドラインプロンプトであると仮定します):

$ python test.py
$ # it will print "running main"

Pythonシェルから実行する場合は、次のことを行うだけです。

>>> import test
>>> test.main() # this calls the main part of your program

既にPythonを使用している場合は、subprocessモジュールを使用する必要はありません。代わりに、コマンドラインとPythonインタープリターの両方から実行できるようにPythonファイルを構造化してください。

14
Escualo

Pythonの新しいバージョンの場合:

exec(open(filename).read())
6
Victor

同じフォルダーから、次のことができます。

import test
2
Brendan Long

このすべてを毎回書かないようにしたい場合は、関数を定義できます:

run = lambda filename : exec(open(filename).read())

そしてそれを呼び出す

run('filename.py')
2
Hugo Trentesaux