如何从IDLE交互式shell中运行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()
提前使用: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'])
阅读文档了解详情:-)
用这个基本的helloworld.py
测试:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
要在python shell(如Idle)或Django shell中运行python脚本,可以使用exec()函数执行以下操作。 Exec()执行代码对象参数。 Python中的代码对象只是编译的Python代码。因此,您必须首先编译脚本文件,然后使用exec()执行它。从你的shell:
>>>file_to_compile = open('/path/to/your/file.py').read() >>>code_object = compile(file_to_compile, '<string>', 'exec') >>>exec(code_object)
你可以通过两种方式来做到这一点
import file_name
exec(open('file_name').read())
但请确保该文件应存储在程序运行的位置
我测试了这个,它有点成功:
exec(open('filename').read()) # Don't forget to put the filename between ' '
在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
你可以在python3中使用它:
exec(open(filename).read())
IDLE shell窗口与终端shell不同(例如运行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文件夹本身中(至少在Windows上就是这种情况)
例如,execFile('C:/helloworld.py')
最简单的方式
python -i helloworld.py #Python 2
python3 -i helloworld.py #Python 3
例如:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
在Python 3中,没有execFile
。可以使用exec
内置函数,例如:
import helloworld
exec('helloworld')
在IDLE中,以下作品: -
import helloworld
我不知道它为什么会起作用,但确实如此......