如何使用python创建json格式的文件夹树?

卡特

我想知道是否有可能提供一个文件夹路径,并让python脚本扫描给定的文件夹并返回一个json树,其中包含每个文件夹的文件数量。该树应包含每个子文件夹:

例如结果:

[{
  foldername: "folder1",
  amount_of_files: 123,
  children: [
    {
      foldername: "folder1.1",
      amount_of_files: 3,
      children: []
    },
    {
      foldername: "folder1.2",
      amount_of_files: 5,
      children: [
        {
          foldername: "folder1.2.1",
          amount_of_files: 20,
          children: []
        }
      ]
    }
  ]
},
{
  foldername: "folder2",
  amount_of_files: 1,
  children: [
    {
      foldername: "folder2.1",
      amount_of_files: 3,
      children: [
        {
          foldername: "folder2.1.1",
          amount_of_files: 2,
          children: [
            {
              foldername: "folder2.1.1.1",
              amount_of_files: 24,
              children: []
            }
          ]
        }
      ]
    },
    {
      foldername: "folder1.2",
      amount_of_files: 5,
      children: []
    }
  ]
}
]
阿贾克斯1234

您可以使用os.listdir递归:

import os, json
def get_tree(path=os.getcwd()):
   return {'foldername':path, 
           'amount_of_files':sum(not os.path.isdir(os.path.join(path, k)) for k in os.listdir(path)),
           'children':[get_tree(os.path.join(path, k)) for k in os.listdir(path) if os.path.isdir(os.path.join(path, k))]}


with open('folder_tree.json', 'w') as f:
   json.dump(get_tree(), f)

要生成字典列表,每个字典都包含文件夹名称和文件数,您可以使用递归生成器函数:

def get_tree(path=os.getcwd()):
   yield {'foldername':path, 'amount_of_files':sum(not os.path.isdir(os.path.join(path, k)) for k in os.listdir(path))}
   for i in os.listdir(path):
      if os.path.isdir(os.path.join(path, i)):
         yield from get_tree(os.path.join(path, i))

with open('folder_tree.json', 'w') as f:
   json.dump(list(get_tree()), f)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从子文件夹访问文件,该子文件夹位于最近使用python创建或修改的文件夹中?

来自分类Dev

如果不使用python创建文件夹,如何检查文件夹是否存在于目录中

来自分类Dev

如何使用python在yaml文件中自动创建子文件夹或立即文件?

来自分类Dev

使用 powershell 浏览文件夹树

来自分类Dev

如何使用diff创建补丁程序以删除文件夹并创建新文件夹?

来自分类Dev

使用python创建用于创建文件夹的循环

来自分类Dev

如何在树的每个文件夹内递归创建哈希文件(sha512sum)?

来自分类Dev

如何在现有文件夹树中(在每个现有文件夹中)递归创建文件夹?

来自分类Dev

如何查找使用Python在特定文件夹中今天创建的所有文件

来自分类Dev

如何使用javascript创建新的文件夹/文件?

来自分类Dev

如何使用NSIS使用子文件夹创建目录?

来自分类Dev

如何使用WiX在安装文件夹中创建子文件夹

来自分类Dev

如何在JavaFX中使用treeview在主文件夹中创建许多文件夹?

来自分类Dev

如何使用定义的变量创建带有子文件夹的文件夹?

来自分类Dev

Python 3.5-在Windows下使用子文件夹创建文件夹

来自分类Dev

使用python在多个不同的文件夹中创建类似的多个子文件夹

来自分类Dev

使用该包在脚本文件夹中创建子文件夹的 Python 包

来自分类Dev

python3-基于树的输出创建文件夹结构

来自分类Dev

如何使用Google的Python Drive Client API在Team Drive中创建文件夹?

来自分类Dev

如何使用Jenkins自动创建文件夹?

来自分类Dev

如何使用InstallShield创建ProgramData文件夹?

来自分类Dev

如何使用Shutil创建特定文件夹的zip

来自分类Dev

如何在Azure中创建或使用本地文件夹?

来自分类Dev

如何使用子文件夹创建JUnit TemporaryFolder

来自分类Dev

如何使用PHP在Dropbox上创建文件夹

来自分类Dev

如何使用Shutil创建特定文件夹的zip

来自分类Dev

如何使用Windows访问在Ubuntu上创建的文件夹?

来自分类Dev

如何删除使用encfs创建的加密文件夹?

来自分类Dev

如何使用Jenkins自动创建文件夹?

Related 相关文章

  1. 1

    如何从子文件夹访问文件,该子文件夹位于最近使用python创建或修改的文件夹中?

  2. 2

    如果不使用python创建文件夹,如何检查文件夹是否存在于目录中

  3. 3

    如何使用python在yaml文件中自动创建子文件夹或立即文件?

  4. 4

    使用 powershell 浏览文件夹树

  5. 5

    如何使用diff创建补丁程序以删除文件夹并创建新文件夹?

  6. 6

    使用python创建用于创建文件夹的循环

  7. 7

    如何在树的每个文件夹内递归创建哈希文件(sha512sum)?

  8. 8

    如何在现有文件夹树中(在每个现有文件夹中)递归创建文件夹?

  9. 9

    如何查找使用Python在特定文件夹中今天创建的所有文件

  10. 10

    如何使用javascript创建新的文件夹/文件?

  11. 11

    如何使用NSIS使用子文件夹创建目录?

  12. 12

    如何使用WiX在安装文件夹中创建子文件夹

  13. 13

    如何在JavaFX中使用treeview在主文件夹中创建许多文件夹?

  14. 14

    如何使用定义的变量创建带有子文件夹的文件夹?

  15. 15

    Python 3.5-在Windows下使用子文件夹创建文件夹

  16. 16

    使用python在多个不同的文件夹中创建类似的多个子文件夹

  17. 17

    使用该包在脚本文件夹中创建子文件夹的 Python 包

  18. 18

    python3-基于树的输出创建文件夹结构

  19. 19

    如何使用Google的Python Drive Client API在Team Drive中创建文件夹?

  20. 20

    如何使用Jenkins自动创建文件夹?

  21. 21

    如何使用InstallShield创建ProgramData文件夹?

  22. 22

    如何使用Shutil创建特定文件夹的zip

  23. 23

    如何在Azure中创建或使用本地文件夹?

  24. 24

    如何使用子文件夹创建JUnit TemporaryFolder

  25. 25

    如何使用PHP在Dropbox上创建文件夹

  26. 26

    如何使用Shutil创建特定文件夹的zip

  27. 27

    如何使用Windows访问在Ubuntu上创建的文件夹?

  28. 28

    如何删除使用encfs创建的加密文件夹?

  29. 29

    如何使用Jenkins自动创建文件夹?

热门标签

归档