python如何遍历一个文件夹下的所有文件,并将文件夹下的文件名和大小用json或者dic表示?

python如何遍历一个文件夹下的所有文件,并将文件夹下的文件名和大小用json或者dic表示?

问题描述:

网络上的教程都是直接输出文件名,能不能汇总到一个dic或者json里面呢?

一、####编写一个程序,统计当前目录下每个文件类型的文件数

####思路:

- 打开当前的文件夹

- 获取到当前文件夹下面所有的文件

- 处理我们当前的文件夹下面可能有文件夹的情况(也打印出来)

- 做出统计

-------------------------------------

import os

#获取到当前文件夹下面所有的文件
all_files = os.listdir(os.curdir) #os.curdir 表示当前目录 curdir:currentdirectory

type_dict = dict()

for each_file in all_files:
    # 如果说我们的each_file是文件夹
    if os.path.isdir(each_file):
        type_dict.setdefault("文件夹", 0)
        type_dict["文件夹"] += 1
    else:
        # 如果不是文件夹,而是文件,统计我们的文件
        ext = os.path.splitext(each_file)[1] #获取到文件的后缀
        type_dict.setdefault(ext, 0)
        type_dict[ext] += 1
       
for each_type in type_dict:
    print("该文件夹下面有类型为{}的文件{}个".format(each_type, type_dict[each_type]))

--------------------------------

二、

# 编写一个程序,计算当前文件夹下面所有文件的大小
- 打开当前的文件夹
- 获取到所有的文件, 和文件大小
- 保存我们获取到的数据,然后打印出来

--------------------------------------

import os

all_files = os.listdir(os.curdir)

file_dict = dict()

for each_file in all_files:
    # 判断我们的这个each_file是否是文件
    if os.path.isfile(each_file):
        file_size = os.path.getsize(each_file)
        file_dict[each_file] = file_size

for each in file_dict.items():
    print("{}大小{}".format(each[0], each[1]))

你自己定义变量存储一下大小和名称

都给你输出文件名了,还嫌别没给你汇总到一个dic或者json里面...。这种事情,自己定义一个变量装一下就好了吧?最近的动手能力还是要有的。