IDLEインタラクティブシェル内からPythonスクリプトを実行する方法を教えてください。
以下はエラーをスローします。
>>> python helloworld.py
SyntaxError: invalid syntax
Python2組み込み関数:execfile
execfile('helloworld.py')
通常、引数付きで呼び出すことはできません。しかし、これは回避策です:
import sys
sys.argv = ['helloworld.py', 'arg'] # argv[0] should still be the script name
execfile('helloworld.py')
Python3:exefileに代わるもの:
exec(open('helloworld.py').read())
グローバル/ローカル変数の受け渡しについては、 https://stackoverflow.com/a/437857/739577 を参照してください。
2.6から廃止予定:popen
import os
os.popen('python helloworld.py') # Just run the program
os.popen('python helloworld.py').read() # Also gets you the stdout
引数あり
os.popen('python helloworld.py arg').read()
事前使用:サブプロセス
import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout
引数あり
subprocess.call(['python', 'helloworld.py', 'arg'])
詳しくはドキュメントを読んでください:-)
この基本的なhelloworld.py
でテストしました:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
あなたはpython3でこれを使用することができます:
exec(open(filename).read())
IDLEシェルウィンドウは端末シェルとは異なります(例:sh
またはbash
の実行)。むしろ、それはPythonの対話型インタプリタ(python -i
)にいるようなものです。 IDLEでスクリプトを実行する最も簡単な方法は、Open
メニューからFile
コマンドを実行し(実行しているプラットフォームによっては多少異なる場合があります)、スクリプトファイルをIDLEエディタウィンドウにロードしてからRun
- >を使用することです。 Run Module
コマンド(ショートカットF5).
これを試して
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
execFile('helloworld.py')
が仕事をしてくれます。注意が必要なのは、.pyファイルがPythonフォルダー自体にない場合は、.pyファイルの完全なディレクトリー名を入力することです(少なくともこれはWindowsの場合です)。
例えばexecFile('C:/helloworld.py')
例えば:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
最も簡単な方法
python -i helloworld.py #Python 2
python3 -i helloworld.py #Python 3
あなたは2つの方法でそれをすることができます
import file_name
exec(open('file_name').read())
しかし、そのファイルがあなたのプログラムが走っている場所に保存されるべきであることを確認してください
IDLEでは、次のように動作します。 -
import helloworld
なぜそれが機能するのか私はあまり知りませんが、それはします..
IdleなどのPythonシェルまたはDjangoシェルでPythonスクリプトを実行するには、exec()関数を使用して次のことを実行できます。 Exec()はコードオブジェクト引数を実行します。 Pythonのコードオブジェクトは単純にコンパイルされたPythonコードです。そのため、まずスクリプトファイルをコンパイルしてからexec()を使用して実行する必要があります。あなたの殻から:
>>>file_to_compile = open('/path/to/your/file.py').read() >>>code_object = compile(file_to_compile, '<string>', 'exec') >>>exec(code_object)
Python 3では、execFile
はありません。たとえば、 exec
組み込み関数を使用することができます。
import helloworld
exec('helloworld')
私はこれをテストしました、そしてそれはちょっとうまくいきます:
exec(open('filename').read()) # Don't forget to put the filename between ' '
Windows環境では、Python 3シェルのコマンドラインで次の構文でpyファイルを実行できます。
exec(open( 'file_nameへの絶対パス')。read())
以下はpython Shellコマンドラインから簡単なhelloworld.pyファイルを実行する方法を説明します
ファイルの場所:C:/Users/testuser/testfolder/helloworld.py
ファイルの内容:print( "hello world")
このファイルは以下のようにPython3.7シェルで実行できます。
>>> import os
>>> abs_path = 'C://Users/testuser/testfolder'
>>> os.chdir(abs_path)
>>> os.getcwd()
'C:\\Users\\testuser\\testfolder'
>>> exec(open("helloworld.py").read())
hello world
>>> exec(open("C:\\Users\\testuser\\testfolder\\helloworld.py").read())
hello world
>>> os.path.abspath("helloworld.py")
'C:\\Users\\testuser\\testfolder\\helloworld.py'
>>> import helloworld
hello world