0

我是一个 python 初学者(几年的课程和实验的生活)返回一个个人项目。

我想从一个文件夹中导入所有内容,我希望我添加到文件夹中的所有代码都导入到我的主目录中。经过研究,我想出了这个尝试,放在主要:

from os.path import dirname, basename, isfile, join
import glob
import importlib
modules = glob.glob(join(dirname(__file__), "*.py"))
allMods = [ basename(f)[:-3] for f in modules if isfile(f) and not f.endswith('__init__.py') and not f.endswith("main.py")]

for i in range(0, len(allMods)):
    importlib.import_module(allMods[i])

'allMods' 在一个数组中包含所有文件的名称 - ["a","b","etc"] - 这就是为什么我使用 for 循环遍历每个文件并尝试导入它们的原因 -示例: importlib.import_module("a") 此时没有错误,所以有些东西正在工作,但是当尝试访问 a.py、b.py 等时,它们根本没有定义(“未解析的引用”) .

在此之前,我在_ _ init _ _.py 尝试了从标准导入到野代码的所有内容,我什至到了谷歌的第二页。

这对于我目前的技能来说显然太先进了(反复试验是我学习得最好的方法)。那么,这个解决方案从一开始就是错误的,还是有什么可以挽救的?

谢谢。

EDIT_1:基本上,我希望能够动态导入我添加到文件夹中的所有内容,而不是对导入命令进行硬编码。

4

2 回答 2

1

我认为你可以做到

from . import *

但我不确定

于 2020-05-03T15:58:04.383 回答
0
from subfolder import filename #no __init__.py necessary
filename.function()

这是一种方法。这是 python 中的一个令人困惑的主题,取决于您希望如何设置项目的详细信息,因此您的问题实际上缺乏一些关于此的具体信息。

于 2020-05-03T16:17:06.580 回答