zoukankan      html  css  js  c++  java
  • [ Python

    练习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+'	'
                if os.path.isfile(dir):
                    file_stat = '<file>'
                elif os.path.isdir(dir):
                    file_stat = '<dir>	'
                print(file_date,'	',file_time,'	',file_stat,'	',file_size,'	',file_name)
    
    f = file_total(base_dir)
    f_stat = f.file_sum()
    print(f.file_stat())
    print('	    %s 个文件
    	    %s 个目录' % (f_stat[0], f_stat[1]))
    View Code

      练习1主要使用到了os模块,os.walk方法很好用。

    练习2:

      编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。

    #!_*_coding:utf-8_*_
    # Author: hkey
    import os, re
    file_list = list()
    # base_dir = input('enter your dir:')
    find_str = input('enter your file str:')
    for root, dirs, files in os.walk('.', topdown=False):
        for name in files:
            if re.search(find_str, name):
                print(os.path.join(root, name))
    View Code

      练习2主要使用到re正则匹配,str类型通过find和index都无法实现判断。

  • 相关阅读:
    squid节点添加新域名测试
    策略路由
    nagios note
    squid日志时间转换
    kuangbin专题十六 KMP&&扩展KMP HDU3336 Count the string
    kuangbin专题十六 KMP&&扩展KMP POJ3080 Blue Jeans
    kuangbin专题十六 KMP&&扩展KMP HDU2594 Simpsons’ Hidden Talents
    kuangbin专题十六 KMP&&扩展KMP POJ2752 Seek the Name, Seek the Fame
    kuangbin专题十六 KMP&&扩展KMP POJ2406 Power Strings
    kuangbin专题十六 KMP&&扩展KMP HDU1358 Period
  • 原文地址:https://www.cnblogs.com/hukey/p/7131213.html
Copyright © 2011-2022 走看看