Python小程序 - 文件类型统计

    文件以后缀名区分类型:统计文件个数;不同类型文件个数

    1. 遍历文件目录,判断当前对像类型(文件夹、文件)后统计文件类型数量
    2. 通过DIR 或 LS 命令遍历当前目录,输出至文件,对文件进行解析统计文件类型数量

    完成 2 所示文件类型统计,目录:C:\Windows\System32>

  • 输出目录所有对像列表
    C:\Windows\System32>dir > c:/sys32dir.txt
  • 解析文件
    import os.path as osp
    
    tfc = 0   # 文件总数
    tfoc = 0  # 文件夹总数
    dft = {}  # 文件类型及个数
    
    
    # sys32dir
    with open("sys32dir.txt",'r', encoding='GBK', errors='ignore') as fp:
        rl = fp.readlines() # 读取文件所有内容
    
        for l in rl:        # 按行读取并解析
            fs = l.split(" ")[-1]   # 获取对像:文件 或 文件夹
    
    
            if osp.isdir(fs):       # 文件夹+1
                print("----------",fs)
                tfoc = tfoc + 1
            else:
                tfc = tfc + 1       # 文件+1
    
                suf = fs.split(".")[-1] # 获取对像后缀
    
                
                if len(fs.split("."))>1:          # 有后缀时为文件
                    if dft.get(suf):        # 当前文件类型已统计+1
                        dft[suf] = dft[suf] + 1
                    else:                   # 当前文件类型未统计,初始值 1
                        dft[suf] = 1
    
    
    print("Total File Count: ", tfc)
    print("Total Folder Count: ", tfoc)
    
    for i in dft:
        print(i, ": ", dft[i])
    
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Total File Count:  4627
    Total Folder Count:  0
     :  2
    dll :  3217
    png :  80
    gif :  3
    tlb :  11
    exe :  623
    sys :  5
    cpl :  18
    xml :  11
    EXE :  11
    bin :  9
    msc :  21
    ax :  15
    DLL :  221
    sdi :  1
    uce :  8
    scr :  6
    rs :  13
    com :  5
    dat :  15
    rll :  2
    NLS :  113
    nls :  8
    json :  3
    mof :  5
    conf :  1
    ocx :  6
    wim :  1
    xsl :  3
    DAT :  2
    vbs :  4
    tsp :  4
    iec :  1
    inf :  1
    acm :  6
    tbl :  2
    wsf :  1
    config :  2
    drv :  3
    ime :  3
    CHS :  1
    pb :  1
    rsp :  1
    sep :  4
    INI :  1
    h :  1
    efi :  3
    Exe :  1
    ini :  2
    xslt :  2
    cmd :  1
    dtd :  1
    
    
  • 遗留问题
    - “.” 为什么在直接读取中未能判定为文件夹
    - 添加了绝对路径后,仍未正确判定为文件夹
    原因:截取对像名时,存在特殊字符 \n
    # 参考 解析文件 代码
    
    # 获取对像:文件 或 文件夹
    # 字符串中包含 \n 等特殊字符
    fs = l.split(" ")[-1].replace("\n","")
    
    # 判断获取字符串是否以 \n 结尾
    print(fs.endswith('\n'))
    
    >>>>>>>>>>>>>>>>>>>>>>> 重新执行,结果片断
       < 去除特殊字符 >                   < 未去除特殊字符 >  
    Total File Count:  4625          # Total File Count:  4627
    Total Folder Count:  2           # Total Folder Count:  0
                                     #  :  2           --- 此处多一行? \n单独成行
    dll :  3217                      #  dll :  3217
    png :  80                        #   png :  80
    gif :  3                         #   gif :  3
    tlb :  11                        #   tlb :  11

相关推荐

  1. Python程序 - 文件类型统计

    2024-04-23 23:34:07       36 阅读
  2. python Flask与微信程序 统计管理

    2024-04-23 23:34:07       44 阅读
  3. Python程序 - 文件处理1(使用AI工具)

    2024-04-23 23:34:07       34 阅读
  4. python递归统计文件夹下pdf文件的数量

    2024-04-23 23:34:07       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 23:34:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 23:34:07       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 23:34:07       82 阅读
  4. Python语言-面向对象

    2024-04-23 23:34:07       91 阅读

热门阅读

  1. python如何实现流式接收数据

    2024-04-23 23:34:07       28 阅读
  2. jpa 和 mybatis 的优缺点

    2024-04-23 23:34:07       24 阅读
  3. 继续学习排序

    2024-04-23 23:34:07       31 阅读
  4. Ubuntu或Debian系统的漏洞修复:apt安装包管理工具

    2024-04-23 23:34:07       33 阅读
  5. 【verilog 设计】 reg有没有必要全部赋初值?

    2024-04-23 23:34:07       37 阅读
  6. leensa111邀请码!

    2024-04-23 23:34:07       33 阅读
  7. pat乙1024-科学计数法

    2024-04-23 23:34:07       32 阅读
  8. 人脸服务的算法内容

    2024-04-23 23:34:07       35 阅读
  9. 笔记:Python 列表和元组(练习题)

    2024-04-23 23:34:07       27 阅读
  10. Day17-Python基础学习之设计模式

    2024-04-23 23:34:07       35 阅读