首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何循环遍历当前目录中的所有.py文件&从每个目录导入一个变量?

问如何循环遍历当前目录中的所有.py文件&从每个目录导入一个变量?
EN

Stack Overflow用户
提问于 2022-04-29 20:00:51
回答 1查看 47关注 0票数 0

我在一个名为end.py的文件中。

在我的当前目录中,我有x个.py文件。

每个.py文件都返回一个名为total的变量。

在end.py中,是否可以循环遍历当前目录中的所有.py文件(除了自身- end.py),并导入每个文件的total变量&最终将每个total变量的值存储在一个列表中,以便稍后在end.py中使用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-29 20:09:14

您可以在当前目录中列出Python文件:

代码语言:javascript
复制
import pathlib

source_files = pathlib.Path('.').glob('*.py')

使用import库,可以在循环中导入这些内容:

代码语言:javascript
复制
import importlib.util
import pathlib

for source_file in pathlib.Path('.').glob('*.py'):
    name = source_file.stem
    spec = importlib.util.spec_from_file_location(name, source_file)
    mod = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(mod)

在for循环中,您可以以mod.total的形式访问total。

要跳过单个文件(如end.py ),可以添加:

代码语言:javascript
复制
import importlib.util
import pathlib

for source_file in pathlib.Path('.').glob('*.py'):
    name = source_file.stem
    if name == 'end':
        continue
    spec = importlib.util.spec_from_file_location(name, source_file)
    mod = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(mod)

请注意,这将导入当前目录中的每个模块。这包括当前模块吗?你可能也想跳过那个。

文档

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72063145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档