You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python主文件中运行另一文件代码,如同代码内置其中?

在Python中运行另一个文件的代码(效果如同内联编写)

这个需求完全可行,Python有两种常用方法实现,具体操作如下:

方法一:用exec()直接执行文件内容

这种方式会把第二个文件的代码当作当前文件的一部分执行,完全符合“如同直接写在第一个文件里”的效果。

假设第一个文件是main.py,第二个是utils.py,在main.py里加这段代码:

with open('utils.py', 'r', encoding='utf-8') as f:
    exec(f.read())

运行main.py时,utils.py里的所有代码都会在main.py的全局环境中执行,里面的变量、函数、类都能直接在main.py里用,包括if __name__ == '__main__':块里的代码也会被执行。

方法二:用from ... import *全导入模块内容

如果第二个文件符合Python模块命名规范(文件名无特殊字符),可以用全导入把所有内容拉到当前文件的命名空间里:

from utils import *

这样utils.py里所有非下划线开头的变量、函数、类都会被导入到main.py里,使用起来和内编写的差不多。但要注意两点:

  • utils.py里的if __name__ == '__main__':块不会被执行(因为导入时模块的__name__是模块名,不是__main__)
  • 如果main.py和utils.py有同名的变量或函数,utils.py里的会覆盖掉main.py里的

两种方法的差异

  • exec()每次运行都会重新读取utils.py的最新内容,适合需要动态加载的场景;import会缓存模块,修改utils.py后需要重启程序,或者用importlib.reload()重新加载。
  • exec()会执行目标文件里的所有代码(包括main块),而import只会执行模块级别的代码,跳过main块。

内容的提问来源于stack exchange,提问作者Zuuki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 08:45:38