【问题标题】:Looping over subdirectories and their subdirectories and creating a dictionary [closed]循环遍历子目录及其子目录并创建字典 [关闭]
【发布时间】:2020-11-26 07:17:12
【问题描述】:

我将如何遍历目录中的子目录,并像这样返回它们:

dirlist = {
  "area": ["square","circle"],
  "line": ["line"]
}

不需要花哨的东西,因为我确信只有一个子目录和一个子子目录,除此之外什么都没有。 每个子目录有多个子目录和多个子子目录。

【问题讨论】:

  • 使用os.walk()
  • 您没有任何目录。你有一本字典。 dict 中的每个值都包含一个列表。你如何迭代一个字典?这在任何关于 dicts 的教程中——以及如何访问它的值。同样,一旦你有了这个值,任何关于列表的教程都会教你如何迭代它们。你被困在哪里了?

标签: python windows directory


【解决方案1】:

Link to half solution.

实际浏览目录的过程与您编写的代码相同。如果 你用简单的print 替换内部循环的内容 语句可以看到每个文件都找到了:

import os
rootdir = 'C:/Users/sid/Desktop/test'

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        print os.path.join(subdir, file)

如果您在运行上述程序时仍然遇到错误,请提供 错误信息。


为 Python3 更新

import os
rootdir = 'C:/Users/sid/Desktop/test'

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        print(os.path.join(subdir, file))

另一半很简单,你没有找到链接中给出的文件,你将 arr 中的子目录的名称和主子目录的名称记录为 dict 中的键,然后 将 arr 设为 key 的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 2016-03-24
    • 2013-12-03
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多