Python循环列出文件夹下的所有文件,并显示文件大小

2022-08-19 414点热度 0人点赞 0条评论

需求

使用Python脚本获得某个文件夹下的所有文件并打印(如果文件夹下还有文件夹,也一并循环列出来)

实现

python可以os的一系列方法,例如:

os.listdir 列出文件夹下的文件

os.path.xxx 获取文件的信息

另外还有文件大小格式化的工具方法。

代码如下:

# -*- coding: UTF8 -*-

import os


# 文件大小格式化
def readable_file_size(bytes, precision):
    for unit in ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB']:
        if abs(bytes) < 1024.0:
            return '%s %s' % (format(bytes, '.%df' % precision), unit)
        bytes /= 1024.0
    return '%s %s' % (format(bytes, '.%df' % precision), 'Yi')


def list_all_files(root_dir):
    for filename in os.listdir(root_dir):
        file_path = os.path.join(root_dir, filename)
        if os.path.isfile(file_path):
            file_len = os.path.getsize(file_path)
            # os.path.getmtime(file_path)  # 获取文件的修改时间
            # os.path.getctime(file_path)  # 获取文件的创建时间
            # os.path.getatime(file_path)  # 获取文件的访问时间
            print('文件:%s 大小:%s' % (file_path, readable_file_size(file_len, 2)))

        # 如果是文件夹,继续打印这个文件夹下的文件
        if os.path.isdir(file_path):
            list_all_files(file_path)


root_dir = '/Users/Terry/Downloads'
list_all_files(root_dir)


 

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论