练习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]))
View Code

相关文章: