如何使用imp从另一个python脚本导入所有内容
这是我的run.py文件:如何使用imp从另一个python脚本导入所有内容,python,python-3.x,Python,Python 3.x,这是我的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/{sc
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
这已经起作用了,但是除了imp,我该如何从example.py import*中执行呢
因此,这可能会起作用:
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
与其让动态模块的名称跟随脚本的名称,不如将其设置为常量,这样会更容易一些。e、 g
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))