我想制作一个循环,以函数中的每个文件中的每个函数导入每个函数,并使用输入来运行该函数,我想分别放置文件,以便我可以添加更多它们
现在,我只有1个文件callde quit.py。
def quit():
raise Exception("bye")
在main.py中我尝试这样做
import os
commands=[]
for file in os.listdir(r"funcs"):
if file.endswith(".py"):
commands.append(file)
file=file[:-3]
from funcs import file
print(commands)
Importerror:无法从“ funcs”中导入名称为“文件”(未知位置)
分析解答
这并不是无用的,也没有太多的安全性,但是您可以在"sys.path"中添加路径,使用"importlib.util"导入并添加全局变量:
from glob import glob
import sys
import pathlib
import importlib.util
sys.path.append(r".\funcs")
for file in glob(r".\funcs\*.py"):
file = pathlib.Path(file)
sys.path.append(file)
imported_module = importlib.import_module(file.stem)
globals().update(imported_module.__dict__)