如何在 Python 解释器中执行文件?

2025-02-12 10:04:00
admin
原创
51
摘要:问题描述:我正在尝试从解释器内部使用 Python 命令执行文件。我正在尝试使用该文件中的变量和设置,而不是调用单独的进程。解决方案 1:有几种方法。从 shellpython someFile.py 在 IDLE 内部,按F5。如果你正在交互输入,请尝试这个(Python3):>>> ex...

问题描述:

我正在尝试从解释器内部使用 Python 命令执行文件。

我正在尝试使用该文件中的变量和设置,而不是调用单独的进程。


解决方案 1:

有几种方法。

  • 从 shell

python someFile.py
  • 在 IDLE 内部,按F5

  • 如果你正在交互输入,请尝试这个(Python3):

>>> exec(open("filename.py").read())
  • 对于 Python 2:

>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module

解决方案 2:

对于 Python 2:

>>> execfile('filename.py')

对于 Python 3:

>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())

请参阅文档。如果您使用的是 Python 3.0,请参阅此问题。

请参阅@S.Lott 的回答,以获取有关如何在执行 filename.py 后访问全局变量的示例。

解决方案 3:

Python 2 + Python 3

exec(open("./path/to/script.py").read(), globals())

这将执行一个脚本并将其所有全局变量放入解释器的全局范围内(大多数脚本环境中的正常行为)。

Python 3exec文档

解决方案 4:

很惊讶我还没有见过这个。你可以执行一个文件,然后在执行终止后使用以下-i选项保持解释器打开:

| foo.py |
----------
testvar = 10

def bar(bing):
  return bing*3

--------



$ python -i foo.py
>>> testvar 
10
>>> bar(6)
18

解决方案 5:

我正在尝试使用该文件中的变量和设置,而不是调用单独的进程。

好吧,只需用import filename(减去.py,需要在同一目录中或在你的PYTHONPATH)导入文件就会运行该文件,使其变量,函数,类等在filename.variable命名空间中可用。

因此,如果您有cheddar.py变量 spam 和函数 eggs – 您可以用它们导入它们import cheddar,用访问变量cheddar.spam并通过调用来运行该函数cheddar.eggs()

如果您的代码cheddar.py位于函数之外,它将立即运行,但构建在导入时运行内容的应用程序将很难重用您的代码。如果可能的话,请将所有内容放在函数或类中。

解决方案 6:

我认为,最好的方法是:

import yourfile

修改 yourfile.py 后

reload(yourfile)   

或者在python3中:

import imp; 
imp.reload(yourfile)

但这会使函数和类看起来像这样:yourfile.function1,yourfile.class1.....

如果你不能接受这些,那么最终的解决方案是:

reload(yourfile)
from yourfile import *

解决方案 7:

就这么做吧,

from my_file import *

确保不要添加 .py 扩展名。如果您的 .py 文件在子目录中使用,

from my_dir.my_file import *

解决方案 8:

对于 Python 3:

>>> exec(open("helloworld.py").read())

运行该命令之前,请确保您位于正确的目录中。

要从不同的目录运行文件,可以使用以下命令:

with open ("C:\\Users\\UserName\\SomeFolder\\helloworld.py", "r") as file:
    exec(file.read())

解决方案 9:

我不是专家,但这是我注意到的:

例如,如果您的代码是 mycode.py,并且您只输入“import mycode”,Python 将执行它,但它不会让所有变量都可供解释器使用。我发现,如果您想让所有变量都可供解释器使用,您实际上应该输入“from mycode import *”。

解决方案 10:

对于 python3,可以使用xxxx = nameyourfile

exec(open('./xxxx.py').read())

解决方案 11:

假设您需要以下功能:

  1. 源文件在调试器中正常运行(文件名显示在堆栈中等)

  2. __name__ == '__main__'为 True,因此脚本可以正确地作为脚本运行。

失败特征exec(open('foo.py').read())1import foo策略失败特征 2

为了获得这两者,你需要:

    source = open(filename).read()
    code = compile(source, filename, 'exec')
    exec(code)

解决方案 12:

python -c "exec(open('main.py').read())"
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用