Python_pkgutil.walk_packages_查询包下所有文件
pkgutil是Python自带的用于包管理相关操作的库。
pkgutil.walk_packages能根据包名找到包里面的数据文件
用法说明
目录结构
代码演示
import pkgutil import conf r = pkgutil.walk_packages(conf.__path__, conf.__name__ + ".") for file_finder, modulename, is_pkg in r: print( file_finder, # 文件查找器 modulename, # 返回所有目录文件拼接值。注意入参的要加".",不加,modulename就不会有"." is_pkg # 目录为True,文件为False )
执行结果
应用场景
导入配置目录下所有模块
import pkgutil import sys import conf conf_var = {} r = pkgutil.walk_packages(conf.__path__, conf.__name__ + ".") for file_finder, modulename, is_pkg in r: __import__(modulename) var_m = sys.modules[modulename] var_names = dir(var_m) for var_name in var_names: if var_name.isupper(): conf_var[var_name] = getattr(var_m, var_name) print(conf_var) # 注意:此时不会获取到conf模块下 __init__.py中定义的变量