练习1:
利用os模块编写一个能实现dir -l输出的程序(注意:dir /l是windows下命令)
#!_*_coding:utf-8_*_ # Author: hkey import os, time base_dir = input('enter your dir:') # 手动输入绝对目录 class file_total(object): '''获取文件及目录属性''' def __init__(self, path): self.__path = path def file_sum(self): '''统计文件及目录总数''' for root, dirs, files in os.walk(self.__path, topdown=False): f_sum = 0 d_sum = 0 for name in files: f_sum += 1 for name in dirs: d_sum += 1 return f_sum, d_sum def file_stat(self): '''获取具体文件及目录属性''' for f in os.listdir(self.__path): dir = os.path.join(self.__path, f) # print(f) os_stat = os.stat(dir) # 日期(年/月/日) file_date = time.strftime('%Y/%m/%d', time.localtime(os_stat.st_mtime)) # 时间(时分秒) file_time = time.strftime('%H:%M', time.localtime(os_stat.st_mtime)) # 文件及目录大小 file_size = os_stat.st_size # 文件名 file_name = f+'\t' if os.path.isfile(dir): file_stat = '<file>' elif os.path.isdir(dir): file_stat = '<dir>\t' print(file_date,'\t',file_time,'\t',file_stat,'\t',file_size,'\t',file_name) f = file_total(base_dir) f_stat = f.file_sum() print(f.file_stat()) print('\t %s 个文件\n\t %s 个目录' % (f_stat[0], f_stat[1]))