web-dev-qa-db-ja.com

IDLEインタラクティブシェルからPythonスクリプトを実行する方法

IDLEインタラクティブシェル内からPythonスクリプトを実行する方法を教えてください。

以下はエラーをスローします。

>>> python helloworld.py
SyntaxError: invalid syntax
88
user1703914

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])
113

あなたはpython3でこれを使用することができます:

exec(open(filename).read())
29
FacePalm

IDLEシェルウィンドウは端末シェルとは異なります(例:shまたはbashの実行)。むしろ、それはPythonの対話型インタプリタ(python -i)にいるようなものです。 IDLEでスクリプトを実行する最も簡単な方法は、OpenメニューからFileコマンドを実行し(実行しているプラ​​ットフォームによっては多少異なる場合があります)、スクリプトファイルをIDLEエディタウィンドウにロードしてからRun - >を使用することです。 Run Moduleコマンド(ショートカットF5).

20
Ned Deily

これを試して

import os
import subprocess

DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')

subprocess.call(['python', DIR])
5
Sergey Nosov

execFile('helloworld.py')が仕事をしてくれます。注意が必要なのは、.pyファイルがPythonフォルダー自体にない場合は、.pyファイルの完全なディレクトリー名を入力することです(少なくともこれはWindowsの場合です)。

例えばexecFile('C:/helloworld.py')

4
optimistic_kid

例えば:

import subprocess

subprocess.call("C:\helloworld.py")

subprocess.call(["python", "-h"])
2
Sergey Nosov

最も簡単な方法

python -i helloworld.py  #Python 2

python3 -i helloworld.py #Python 3
2
Leonard

あなたは2つの方法でそれをすることができます

  • import file_name

  • exec(open('file_name').read())

しかし、そのファイルがあなたのプログラムが走っている場所に保存されるべきであることを確認してください

1
ujjal das

IDLEでは、次のように動作します。 -

import helloworld

なぜそれが機能するのか私はあまり知りませんが、それはします..

1
Aditya Dixit

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.4を使っています。詳しくは コンパイルexec のドキュメントを参照してください。

1
y2knoproblem

Python 3では、execFileはありません。たとえば、 exec 組み込み関数を使用することができます。

import helloworld
exec('helloworld')
1
piogor

私はこれをテストしました、そしてそれはちょっとうまくいきます:

exec(open('filename').read())  # Don't forget to put the filename between ' '
0
Remache Amine

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
0
vinsinraw