需求
使用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)
文章评论