回答:
いくつかの方法。
シェルから
python someFile.py
IDLE内からF5を押します。
インタラクティブに入力している場合は、これを試してください:(Python 2のみ!)
>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module
Python3の場合、次を使用します。
>>> exec(open("filename.py").read())
pythonpython3代わりにpython 3を実行している場合は機能しません。
stdin使用<するようなファイルから提供する方法はありexecfile()ますか?@ s-lott
pythonpython3
python、環境変数のフォルダを調べたときにシステムが検出する実行可能ファイルによって異なりますPATH。
Python 2の場合:
>>> execfile('filename.py')
Python 3の場合:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
ドキュメントを参照してください。Python 3.0を使用している場合は、この質問を参照してください。
実行後にfilename.pyからグローバルにアクセスする方法の例については、@ S.Lottによる回答を参照してください。
exec(open("./path/to/script.py").read(), globals())
これにより、スクリプトが実行され、すべてのグローバル変数がインタープリターのグローバルスコープに配置されます(ほとんどのスクリプト環境での通常の動作)。
私はまだこれを見ていません。ファイルを実行し、-iオプションを使用して実行が終了した後、インタープリターを開いたままにすることができます。
| foo.py |
----------
testvar = 10
def bar(bing):
return bing*3
--------
$ python -i foo.py
>>> testvar
10
>>> bar(6)
18
別のプロセスを呼び出すのではなく、そのファイルの変数と設定を使用しようとしています。
まあ、単純にimport filename(マイナス.py、同じディレクトリまたはにある必要がありますPYTHONPATH)でファイルをインポートすると、ファイルが実行され、変数、関数、クラスなどがfilename.variable名前空間で使用できるようになります。
したがってcheddar.py、変数spamと関数eggsがある場合import cheddar、それらをでインポートし、で変数にアクセスして、次のcheddar.spam呼び出しで関数を実行できます。cheddar.eggs()
cheddar.py関数の外にあるコードがある場合は、すぐに実行されますが、インポート時に実行するアプリケーションをビルドすると、コードの再利用が難しくなります。可能であれば、すべてを関数またはクラス内に配置します。
from filename import *
私は専門家ではありませんが、これは私が気づいたことです:
たとえば、コードがmycode.pyで、 'import mycode'と入力すると、Pythonはそれを実行しますが、すべての変数をインタープリターで使用できるようにはなりません。インタープリターですべての変数を使用できるようにする場合は、実際には「from mycode import *」と入力する必要があることがわかりました。
ただ、
from my_file import *
.py拡張子を追加しないようにしてください。サブディレクトリの.pyファイルが使用している場合、
from my_dir.my_file import *
Python 3の場合:
>>> exec(open("helloworld.py").read())
コマンドを実行する前に、正しいディレクトリにいることを確認してください。
別のディレクトリからファイルを実行するには、以下のコマンドを使用できます。
with open ("C:\\Users\\UserName\\SomeFolder\\helloworld.py", "r") as file:
exec(file.read())
次の機能が必要だとします。
__name__ == '__main__' はTrueなので、スクリプトはスクリプトとして正しく動作します。exec(open('foo.py').read())機能1を失敗したimport foo戦略が機能2失敗します
両方を取得するには、次のものが必要です。
source = open(filename).read()
code = compile(source, filename, 'exec')
exec(code)