【问题标题】:How do I load a file into the python console?如何将文件加载到 python 控制台中?
【发布时间】:2011-07-13 21:41:56
【问题描述】:

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

【问题讨论】:

  • import file。没有.py 分机。
  • 使用import file时,无法访问file中的变量。
  • 其实可以访问变量。试试file.variable

标签: python read-eval-print-loop


【解决方案1】:

从 shell 命令行:

python file.py

从 Python 命令行

import file

from file import *

【讨论】:

  • 还有reload(file),当您更改了其中的某些内容时。
  • 那是from file import *,不是import * from file
  • 文件是否需要是特定的导演?我正在尝试它的完整路径,但它不起作用。
  • 导入目录.子目录.文件
  • @Seth 那是相对路径,不是吗?绝对路径怎么样?
【解决方案2】:

对于 Python 2,试试 execfile。 (请参阅 Python 3 的其他答案)

execfile('file.py')

示例用法:
让我们使用“copy con”快速创建一个小脚本文件...

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

【讨论】:

  • 你能解释一下copy con的用法吗?从我正在阅读的内容来看,它仅用于复制文件computerhope.com/copyhlp.htm
  • 他从控制台(作为文件处理)复制到 execfile_example.py。 ^Z 是文件的结尾。这只是一种无需打开编辑器即可将文本放入文件的方法。
  • 如果您还没有进入控制台,请查看@Arafangion 的答案。
【解决方案3】:

您可以只使用导入语句:

from file import *

因此,例如,如果您有一个名为 my_script.py 的文件,您会像这样加载它:

from my_script import *

【讨论】:

  • * 是什么意思?
  • 这里的 * 表示将脚本中的所有名称都导入到当前作用域中。因此,如果您直接从 python 命令提示符运行它,那么您在脚本中定义的任何变量、函数等都将在您的 python 会话中可用。
【解决方案4】:

来自手册页:

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

所以这应该做你想要的:

python -i file.py

【讨论】:

  • 如果您还没有在控制台中,这是一个很好的方法。感谢您的提示 Arafangion
  • 如果文件已更改,如何重新加载file.py? python3.8+
  • 问题显然是在控制台中加载文件。
  • @RichieHH:然而,整整十年的堆栈溢出访问者发现它是一个有用的答案,最初的问题可能是模棱两可的,并且已经被编辑......
  • @Asalle:对于你的问题,你应该把它作为一个单独的问题提出来,但是看看stackoverflow.com/questions/31410419/python-reload-file
【解决方案5】:

如果你使用的是 IPython,你可以简单地运行:

%load path/to/your/file.py

http://ipython.org/ipython-doc/rel-1.1.0/interactive/tutorial.html

【讨论】:

    【解决方案6】:

    如果您的path 环境变量包含Python(例如C:\Python27\),您可以简单地从Windows 命令行(cmd) 运行您的py 文件。 Howto here.

    【讨论】:

      【解决方案7】:

      在您要导入的文件所在的文件夹中打开命令提示符。当你输入“python”时,python 终端将被打开。现在您可以使用

      import script_name
      注意:在导入时不要使用 .py 扩展名。
      How can I open a cmd window in a specific location?

      【讨论】:

        【解决方案8】:

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

        execfile 解决方案仅对 Python 2 有效。Python 3 删除了 execfile 函数 - 并将 exec 语句提升为内置通用函数。正如 Python 3.0 的更新日志和 Hi-Angels 评论中的评论所暗示的:

        使用

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

        而不是

        execfile(<filename.py>)
        

        【讨论】:

        • 如果文件包含导入语句,例如import osexec() 会执行这些语句吗?我目前正在尝试这个,答案似乎是否定的......
        • 需要注意的是 filename.py 是一个字符串,所以应该用引号引起来。即 exec(open("mypythonfile.py").read())
        • 嗯...这是倒退了一步。谢谢,Python 3。
        • 你如何提供正在执行的程序需要的任何参数?
        猜你喜欢
        • 1970-01-01
        • 2021-08-26
        • 1970-01-01
        • 2017-07-27
        • 2021-06-05
        • 2012-07-17
        • 1970-01-01
        • 2016-11-28
        • 2022-07-15
        相关资源
        最近更新 更多