gpt4 book ai didi

python - 我如何使用imp从另一个python脚本中导入所有内容

转载 作者:行者123 更新时间:2023-12-04 07:42:54 24 4
gpt4 key购买 nike

这是我的 run.py 文件:

import imp
import os

for script in os.listdir("MyFolder"):
if os.path.isdir("MyFolder/" + script) == False and script.endswith(".py"):
script = imp.load_dynamic(script[:-3], f"MyFolder/{script}")

print(script.multiply(2,6))
那么这是 MyFolder/example.py 文件:
def multiply(x:int, y:int):
return x * y
这已经有效,但是我应该怎么做 from example.py import * 除了 imp
所以这可以工作:
import imp
import os

for script in os.listdir("MyFolder"):
if os.path.isdir("MyFolder/" + script) == False and script.endswith(".py"):
imp.load_dynamic(script[:-3], f"MyFolder/{script}")

print(multiply(2,6))

最佳答案

imp模块已弃用,取而代之的是 importlib .
与其让动态模块的名称跟随脚本的名称,不如将其设置为常量,事情会变得容易一些。例如

import importlib.util
import os
import sys

for script in os.listdir("MyFolder"):
script_path = os.path.join("MyFolder", script)
if not os.path.isdir(script_path) and script_path.endswith(".py"):
spec = importlib.util.spec_from_file_location("example", script_path)
sys.modules["example"] = importlib.util.module_from_spec(spec)
spec.loader.load_module("example")

from example import *


print(multiply(4, 5))

关于python - 我如何使用imp从另一个python脚本中导入所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67359835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com