前言:
此刻我们对“python遍历文件大小”都比较注意,兄弟们都想要知道一些“python遍历文件大小”的相关内容。那么小编同时在网上汇集了一些关于“python遍历文件大小””的相关知识,希望各位老铁们能喜欢,我们快快来了解一下吧!如果要得到一个目录下的子目录名,子目录大小,文件名,文件大小等参数,递归遍历是常用的方法,下面是一个python脚本例程
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import time
dic = {
'sum_size':0,
'file_amounts':0,
'directory_amounts':0
}
files = []
def rescusive(path):
dirs=[]
items = os.listdir(path)
for item in items:
item = os.path.join(path,item)
if os.path.isfile(item) and item not in files:
files.append(item)
elif os.path.isdir(item) and item not in dirs:
dirs.append(item)
for directory in dirs:
dic['directory_amounts'] += 1
rescusive(directory) # 递归遍历子目录
def get_size(path, record): # record是记录程序运行结果的文件名
rescusive(path) # 遍历目录
files.sort() #文件排序
with open(record,mode="a+",encoding='utf-8') as f:
for file in files:
size = os.path.getsize(file)
print(file,size)
dic['file_amounts'] += 1
dic['sum_size'] += size
data = '{} {}\n'.format(file,size)
''' 格式化字符串的函数 str.format(),它增强了字符串格式化的 功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序 '''
f.write(data)
f.close()
return dic['sum_size']
if __name__ == '__main__':
path = './npy'
record = 'data.txt'
localtime = time.asctime(time.localtime(time.time())) # 取当地时间,
print(localtime)
with open(record, mode="a+",encoding='utf-8') as f:
f.write(localtime)
f.write('\n')
result = get_size(path,record)
print(result)
amount = '{}:{}:{}'.format(dic['directory_amounts'], dic['file_amounts'], dic['sum_size'])
print(amount)
f.write(amount)
f.close()
print("Hello %s" % path.split('/')[-1].upper())
os.walk() 方法主要用来遍历一个目录内各个子目录和子文件,程序文件输入os模块。
代入参数 os.walk(top)
top :是你所要遍历的目录的地址, 返回的是一个三元组 (dirpath, dirnames, filenames)
返回的三元组介绍
dirpath :string,代表目录的路径,
dirnames :list,包含了dirpath下所有子目录的名字。
filenames :list,包含了非目录文件的名字。
标签: #python遍历文件大小