gpt4 book ai didi

python - 检查包中模块的变量

转载 作者:行者123 更新时间:2023-11-30 23:46:26 25 4
gpt4 key购买 nike

我的 python 项目具有以下文件结构:

/main.py
/functions
/functions/func1.py
/functions/func2.py
/functions/func3.py
/funcitons/__init__.py

每个 func.py 文件都有一个变量“CAN_USE”。在某些文件中它是正确的,在其他文件中是错误的。如何检查 main.py 内部哪些 func.py 文件的“CAN_USE”变量等于 true?

最佳答案

使用pkgutil您可以找到包中的所有模块:

import pkgutil

def usable_modules(package_name):
modules = pkgutil.iter_modules([package_name])
usable = []
for importer, name, ispkg in modules:
module = pkgutil.find_loader('{0}.{1}'.format(package_name, name)).\
load_module(name)
if hasattr(module, 'CAN_USE') and module.CAN_USE:
usable.append(module)
return usable

print(usable_modules('functions'))

请注意,这还会检查包中的其他模块(例如 __init__.py)。如果需要,您可以在循环中过滤掉它们(例如 if not name.startswith('func'): continue)。

关于python - 检查包中模块的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com