Python 导入当前目录中的所有文件
我刚刚开始了一个python项目。目录结构如下:Python 导入当前目录中的所有文件,python,Python,我刚刚开始了一个python项目。目录结构如下: /algorithms ----/__init__.py ----/linkedlist --------/__init__.py --------/file1.py --------/file2.py /tests ----/test_linkedlist from algorithms.linkedlist import * import unittest 您也可以查看 在算法下的每个子文件夹中,在\uuu
/algorithms
----/__init__.py
----/linkedlist
--------/__init__.py
--------/file1.py
--------/file2.py
/tests
----/test_linkedlist
from algorithms.linkedlist import *
import unittest
您也可以查看
在算法
下的每个子文件夹中,在\uuuuu init\uuuuu
文件中,我逐一为所有文件包括以下内容:
from .file1 import *
from .file2 import *
等等
我试图实现的任务是使用查询同时运行所有测试:
python3 -m unittest discover tests
tests目录中的每个文件的启动方式如下:
/algorithms
----/__init__.py
----/linkedlist
--------/__init__.py
--------/file1.py
--------/file2.py
/tests
----/test_linkedlist
from algorithms.linkedlist import *
import unittest
现在,如果我想向linkedlist目录添加一个新文件,我将创建该文件,然后在\uuu init\uu
文件中添加另一个from.filename import*
如何在
\uuuu init\uuuu
文件中编写脚本,以便每次创建新文件时,不必手动插入导入命令 那么\uuuu init\uuuu
在同一个文件夹中?正如前面所说,import语句是\uuuu import\uuu
函数的语法糖
因此,我们可以使用:
import importlib
import glob
for file in glob.iglob('*.py'):
importlib.__import__(file)
这不起作用的一些原因:
- 您希望加载模块中的函数,
语法。使用此代码,您只能运行import*from
李>file1.test
- 您从另一个目录运行脚本加载,这会混淆
。我们必须指定实际的工作目录李>glob
更愿意知道模块名称李>\uuuu导入\uuuu
- 您从另一个目录运行脚本加载,这会混淆
import*from
函数与blog中的pkgutil.walk\u包相结合
在初始化文件中复制粘贴此项失败。是,初始化文件位于同一文件夹中。我正试图从包的根目录运行问题中给出的test命令。@OmarShalla失败是什么意思?您的意思是文件没有正确包含,因此您的测试失败了,还是建议的代码本身产生了错误?建议的代码产生了错误。您可以克隆我的存储库并自己尝试。错误日志太长,无法在此发布。我再次从包的根目录(包含算法和测试文件夹的目录)运行以下命令“python3-m unittest discover tests”,现在就用您的git进行测试:)谢谢您的帮助!