是否可以一次循环列表的所有元素

谢尔女士

想阅读文件夹内容并将其转换为字典。我的基本方法如下。

代码片段:

import os

    b_path = "/home/work/assignments/chapters"
    output = {}
    
    for path, subdirs, files in os.walk(b_path):
        for name in subdirs:
            tmp = os.path.join(path, name)
            tmp_arr = [i for i in os.listdir(tmp)]
            for i, v in enemurate(tmp_arr):
                output[name] = [os.path.join(tmp, v)]
                output[name].append(os.path.join(tmp, <not sure how to achieve this> ))]
    print(output)

subdirs打印文件夹名称 -countries, social, algebra, functions等等。

subdir (文件夹)下包含 2 个文件,1. yaml 文件,2. zip 或 tar.gz 文件。

tmp_arr's 输出

['func.yaml', 'sensor.zip']
['packets.tar.gz', 'check.yaml']
['mt101.tar.gz', 'provider.yaml']
and so on.

我希望我的字典看起来像:

{
    "countries": [
        "/home/work/assignments/chapters/countries/func.yaml",
        "/home/work/assignments/chapters/countries/sensor.zip"
    ],
    "social": [
        "/home/work/assignments/chapters/social/check.yaml",
        "/home/work/assignments/chapters/social/packets.tar.gz"
    ],
     and so on
 }
虚拟机

我有一个这样的文件夹结构:

Sample
│
└───folderA
│   │   A1.txt
│   │   A2.txt
│  
└───folderB
    │   B1.txt
    │   B2.txt

代码

import os

b_path = "Sample"
output = {}

for path, subdirs, files in os.walk(b_path):
    for name in files:
        folder = os.path.basename(path)
        if output.get(folder) is None:
            output[folder] = [name]
        else:
            output[folder].append(name)

print(output)

输出

{'folderA': ['A1.txt', 'A2.txt'], 'folderB': ['B1.txt', 'B2.txt']}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以一次从HazelcastInstance(地图和列表)中删除所有数据?

是否可以在不循环列表的情况下通过常量增加一系列数组元素的值?

循环列表 n 次

如何一次访问R中的所有子列表元素?

是否可以一次获得所有的apache commons?

是否可以在一次操作中获得Redis集的所有值?

是否可以一次关闭R脚本中的所有代码中断?

是否可以一次最小化Android Studio中的所有功能?

是否可以为所有列仅定义一次dtype?

是否可以在OpenGL中一次保留所有状态?

是否可以一次转义多个路由中的所有参数?

是否可以一次将datalayer变量添加到所有事件?

是否可以一次更改包含相同日期的所有日期字段?

TerraForm AWS:是否可以一次性导入所有 AWS 资源?| terraform 一次性导入所有服务

Python如何一次遍历一个列表中的100个元素,直到到达所有元素?

试图在for循环中列出ggplot对象;列表中的所有项目均写为循环的最后一次迭代

一次计算所有值的 for 循环?

Propel:如何在一个循环中一次从数据库中检索所有元素?

多个列表中元素的最小组合,以便所有元素至少出现一次

Polymer 1.0一次导入所有元素

一次打开python列表中的所有文件

Psychopy:一次从列表中绘制所有图像

NSFetchedResultsController是否一次获取所有结果?

是否有一种简单的方法可以通过R中的并行化一次运行多个循环试验?

如何在Lisp中一次生成一个列表中元素的所有排列?

有没有一种方法可以简单地打印整数数组(一次完成所有数组元素),而无需使用循环和不使用'Arrays.toString()'?

是否有一个行为像队列但可以让我一次获取多个元素的集合?

jQuery(element)是一次选择一个元素还是一次选择所有元素?

是否可以在Java中修改列表的所有元素?