How to run a python script from IDLE interactive shell?

如何在 IDLE 交互式 shell 中运行 Python 脚本?

下面抛出一个错误:

>>> python helloworld.py
SyntaxError: invalid syntax
377550 次浏览

The IDLE shell window is not the same as a terminal shell (e.g. running sh or bash). Rather, it is just like being in the Python interactive interpreter (python -i). The easiest way to run a script in IDLE is to use the Open command from the File menu (this may vary a bit depending on which platform you are running) to load your script file into an IDLE editor window and then use the Run -> Run Module command (shortcut F5).

Python 3 :

exec(open('helloworld.py').read())

如果您的文件不在同一个目录中:

exec(open('./app/filename.py').read())

有关传递全局/局部变量的信息,请参见 https://stackoverflow.com/a/437857/739577


在不推荐的 Python 版本中

蟒蛇2 内置函数: < strong > < a href = “ https://docs.python.org/2/library/function tions.html # Execfile”rel = “ noReferrer”> Execfile

execfile('helloworld.py')

它通常不能用论点来表示,但这里有一个变通方法:

import sys
sys.argv = ['helloworld.py', 'arg']  # argv[0] should still be the script name
execfile('helloworld.py')

从2.6: 译自: 美国《科学》杂志网站(http://docs.python.org/2/library/os.html)原文地址: http://docs.python.org/2/library/os.html 原文地址: http://docs.python.org/2/library/os.html开始就废弃了

import os
os.popen('python helloworld.py') # Just run the program
os.popen('python helloworld.py').read() # Also gets you the stdout

With arguments:

os.popen('python helloworld.py arg').read()

预先使用: 一个 href = “ https://docs.python.org/2/library/subprocess.html”rel = “ noReferrer”> subprocess

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

Read the docs for details :-)


Tested with this basic helloworld.py:

import sys
if len(sys.argv) > 1:
print(sys.argv[1])

execFile('helloworld.py')为我完成了这项工作。值得注意的一点是输入。Py 文件,如果它不在 Python 文件夹中(至少在 Windows 上是这样)

例如,execFile('C:/helloworld.py')

例如:

import subprocess


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


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

Try this

import os
import subprocess


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


subprocess.call(['python', DIR])

在 Python 3中,没有 execFile。我们可以使用 exec内置函数,例如:

import helloworld
exec('helloworld')

在 IDLE 中,有以下作品:-

import helloworld

I don't know much about why it works, but it does..

要在 python shell (如 Idle)或 Django shell 中运行 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文档。

你可以在 python3中使用:

exec(open(filename).read())

I tested this and it kinda works out :

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

最简单的方法

python -i helloworld.py  #Python 2


python3 -i helloworld.py #Python 3

you can do it by two ways

  • import file_name

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

but make sure that file should be stored where your program is running

在 Windows 环境中,可以使用以下语法在 Python3 shell 命令行上执行 py 文件:

Exec (open (“ file _ name 的绝对路径”) . read ())

下面解释了如何从 python shell 命令行执行一个简单的 helloworld.py 文件

文件位置: C:/Users/testuser/testfile/helloworld.py

文件内容: print (“ hello world”)

We can execute this file on Python3.7 Shell as below:

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

还有一个选择(窗口)-

    import os
os.system('py "<path of program with extension>"')

在 python 控制台中,可以尝试以下两种方法。

在同一个工作目录下,

1. > > 进口 helloworld

# if you have a variable x, you can print it in the IDLE.

> helloworld.x

# 如果你有一个函数 好玩你也可以这样调用它。

> > helloworld.func ()

2. > > runfile (“ ./helloworld.py”)