如何将文件加载到python控制台中?


208

我有一些python代码行,它们正在不断地复制/粘贴到python控制台中。有load命令或我可以运行的东西吗?例如load file.py


15
import file。没有.py扩展名。
Mikel

1
import file使用时,变量file不能被访问。
卡迪尔

5
实际上,可以访问变量。尝试file.variable
蒂姆·卢德温斯基

Answers:


197

对于Python 2(请参阅Python 3的其他答案),请尝试一下:

execfile('file.py')

用法示例:

C:\junk>copy con execfile_example.py
a = [9, 42, 888]
b = len(a)
^Z
        1 file(s) copied.

C:\junk>\python27\python
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> execfile('execfile_example.py')
>>> a
[9, 42, 888]
>>> b
3
>>>

1
你能解释一下你的用法copy con吗?根据我的阅读,它仅用于复制文件computerhope.com/copyhlp.htm
CodyBugstein 2014年

12
他从控制台(作为文件)复制到execfile_example.py。^ Z是文件末尾。这只是一种在不打开编辑器的情况下将文本输入文件的方法。
IJ肯尼迪

如果您尚未进入控制台,请参阅@Arafangion的答案。
巴里·麦克纳马拉

166

从手册页:

-i当脚本作为第一个参数传递或使用-c选项时,请在执行脚本或命令后进入交互模式。它不会读取$ PYTHONSTARTUP文件。当脚本引发异常时,这对于检查全局变量或堆栈跟踪很有用。

所以这应该做你想要的:

python -i file.py

7
如果您还没有控制台,这是一个很好的方法。感谢您的提示Arafangion
SomeShinyObject 2012年

89

Python 3:新的exec (已删除execfile)

execfile解决方案仅对Python 2有效。Python3删除了execfile函数-并将exec语句提升为内置的通用函数。正如Python 3.0的changelog中的注释和Hi-Angels注释所建议的那样:

exec(open(<filename.py>).read())

代替

execfile(<filename.py>)

如果文件包含导入语句,例如import os,是否exec()执行这些语句?我目前正在尝试此操作,答案似乎不是...
Rylan Schaeffer,

25

从shell命令行:

python file.py

从Python命令行

import file

要么

from file import *

8
reload(file)当您更改其中的某些内容时。
圣诞老人

1
from file import *不是,不是全部import * from file
2011年

1
该文件需要为特定主管吗?我正在尝试使用其完整路径,但无法正常工作。
CodyBugstein 2014年

进口directory.subdirectory.file
塞斯2015年

14

您可以只使用import语句:

from file import *

因此,例如,如果您有一个名为的文件,则将其my_script.py加载为:

from my_script import *



0

如果您的path环境变量包含Python(例如C:\Python27\),则可以直接从Windows命令行(cmd)运行py文件。 如何在这里。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.