如何从IDLE交互式外壳程序中运行python脚本?
以下引发错误:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
在IDLE Shell窗口中键入内容,但这不起作用。
如何从IDLE交互式外壳程序中运行python脚本?
以下引发错误:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
在IDLE Shell窗口中键入内容,但这不起作用。
Answers:
Python3:
exec(open('helloworld.py').read())
如果您的文件不在同一目录中:
exec(open('./app/filename.py').read())
有关传递全局/局部变量的信息,请参阅https://stackoverflow.com/a/437857/739577。
在不推荐使用的Python版本中
Python2 内置函数:execfile
execfile('helloworld.py')
通常不能用参数调用它。但是,有一个解决方法:
import sys
sys.argv = ['helloworld.py', 'arg'] # argv[0] should still be the script name
execfile('helloworld.py')
从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])
exec
为Python3 添加了
空闲外壳窗口与终端外壳(例如,运行sh
或bash
)不同。而是就像在Python交互式解释器(python -i
)中一样。在IDLE中运行脚本的最简单方法是使用菜单中的Open
命令File
(这可能会有所不同,具体取决于运行的平台),将脚本文件加载到IDLE编辑器窗口中,然后使用Run
-> Run Module
命令(快捷方式F5)。
sys.argv
在程序的开始处(例如,在通常的if __name__ == "__main__"
样板下)手动初始化。
Run
-> Run with Customized...
命令(快捷键Shift + 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"])
subprocess.call(r'c:\path\to\something.py')
对我不起作用。OSError:[WinError 193]%1不是有效的Win32应用程序
要在python外壳程序(例如Idle)或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)
在Windows环境中,您可以使用以下语法在Python3 Shell命令行上执行py文件:
exec(open('file_name的绝对路径').read())
下面说明了如何从python shell命令行执行简单的helloworld.py文件
文件位置:C:/Users/testuser/testfolder/helloworld.py
文件内容:print(“ hello world”)
我们可以在Python3.7 Shell上执行以下文件:
>>> 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
还有另一种选择(适用于Windows)-
import os
os.system('py "<path of program with extension>"')
helloworld.py
样子?