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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/568227.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习-数据预处理

目录 创建一个人工数据集处理缺失的数据插入对inputs中的类别值或离散值&#xff0c;将NaN视为一个类别对inputs和outputs中的数值类型转换为张量格式 创建一个人工数据集 import os import pandas as pd os.makedirs(os.path.join(.., data), exist_okTrue) data_file os.p…

基于Vue+ElementPlus自定义带历史记录的搜索框组件

前言 基于Vue2.5ElementPlus实现的一个自定义带历史记录的搜索框组件 效果如图&#xff1a; 基本样式&#xff1a; 获取焦点后&#xff1a; 这里的历史记录默认最大存储10条&#xff0c;同时右侧的清空按钮可以清空所有历史记录。 同时搜索记录也支持点击搜索&#xff0c;按…

.NET(C#)连接达梦数据库GUID字段被自动加横线的修复方法

因信创的原因项目需要兼容达梦数据库&#xff0c;今天遇到个比较坑爹的问题&#xff0c;简单记录下解决方案。 数据库存的是这样&#xff1a; 通过DataAdapter.Fill拿出来以后变成了这样 纳尼&#xff1f;谁让你加上这些横杠的&#xff1f;&#xff08;掀桌&#xff09;导致了…

100个实用电气知识

在当今社会&#xff0c;电力作为日常生活和工作中不可或缺的能源&#xff0c;扮演着越来越重要的角色。为了更好地利用电力资源&#xff0c;了解电气知识成为了越来越多人的需求。在电气领域&#xff0c;有很多实用的知识&#xff0c;这些知识对于从事电气工作的人来说是非常重…

Linux系统安全:从面临的攻击和风险到安全加固、安全维护策略(文末有福利)

1. Linux面临的攻击与风险 1.1. Linux系统架构 Linux系统架构解读&#xff1a; 用户之间隔离内核态与用户态之间隔离用户进程一般以低权限用户运行系统服务一般以特权服务运行用户态通过系统调用进入内核态内核对系统资源进行管理和分配 1.2. Linux系统常见安全威胁 1.2.1.…

OSPF认证方式,ISIS简介,ISIS路由器类型

OSPF&#xff1a;转发&#xff0c;泛洪&#xff0c;丢弃

Docker搭建代码托管Gitlab

文章目录 一、简介二、Docker部署三、管理员使用四、用户使用五、用户客户端 一、简介 GitLab是一个基于Git的代码托管和协作平台&#xff0c;类似于GitHub。 它提供了一个完整的工具集&#xff0c;包括代码仓库管理、问题跟踪、CI/CD集成、代码审查等功能。 GitLab的开源版本…

Go语言并发赋值的安全性

struct并发赋值 type Test struct {X intY int }func main() {var g Testfor i : 0; i < 1000000; i {var wg sync.WaitGroup// 协程 1wg.Add(1)go func() {defer wg.Done()g Test{1, 2}}()// 协程 2wg.Add(1)go func() {defer wg.Done()g Test{3, 4}}()wg.Wait()// 赋值…

2024新算法角蜥优化算法(HLOA)和经典灰狼优化器(GWO)进行无人机三维路径规划设计实验

简介&#xff1a; 2024新算法角蜥优化算法&#xff08;HLOA&#xff09;和经典灰狼优化器&#xff08;GWO&#xff09;进行无人机三维路径规划设计实验。 无人机三维路径规划的重要意义在于确保飞行安全、优化飞行路线以节省时间和能源消耗&#xff0c;并使无人机能够适应复杂…

国内首个48小时大模型极限挑战赛落幕,四位“天才程序员”共同夺冠

4月21日晚&#xff0c;第四届ATEC科技精英赛&#xff08;ATEC2023&#xff09;线下赛落幕。本届赛事以大模型为技术基座&#xff0c;围绕“科技助老”命题&#xff0c;是国内首个基于真实场景的大模型全链路应用竞赛。ATEC2023线下赛采用48小时极限挑战的形式&#xff0c;来自东…

Ts支持哪些类型和类型运算(上)

目录 1、元组 2、接口&#xff08;interface&#xff09; 3、枚举&#xff08;Enum&#xff09; 4、字面量类型 5、keyof 6、in keyof 7、类型的装饰 静态类型系统 就是把 类型检查从运行时提前到了编译时&#xff0c;所以ts类型系统中的许多类型与js并无区别 例如&am…

概率图模型在机器学习中的应用:贝叶斯网络与马尔可夫随机场

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

go语言并发实战——日志收集系统(七) etcd的介绍与简单使用

什么是etcd etcd是基于Go语言开发的一个开源且高可用的分布式key-value存储系统&#xff0c;我们可以在上面实现配置共享与服务的注册与发现。 和它比较相似的还有我们之间所提到的Zookeeper以及consul.(注:后面我们学习微服务的时候etcd和consul会有广泛的使用) etcd有以下几…

网络中其他协议

目录 DNS协议 域名简介 ICMP协议 ICMP功能 ICMP协议格式 ping命令 NAT技术 NATP NAT技术的限制 代理服务器 DNS协议 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 为什么有这个协…

W801学习笔记十二:掌机进阶V3版本之驱动(PSRAM/SD卡)

本次升级添加了两个模块&#xff0c;现在要把他们驱动起来。 一&#xff1a;PSRAM 使用SDK自带的驱动&#xff0c;我们只需要写一个初始化函数&#xff0c;并在其中添加一些自检代码。 void psram_heap_init(){wm_psram_config(0);//实际使用的psram管脚选择0或者1&#xff…

基于Linux系统命令行安装KingbaseES数据库

人大金仓通用性数据库&#xff08;Kingbase&#xff09;下载网址&#xff1a;人大金仓-成为世界卓越的数据库产品与服务提供商 选择“软件版本-数据库”&#xff0c;筛选条件Linux、完整版。找到需要的版本&#xff0c;点击下载。我下载的是KingbaseES_V008R006C008B0014_Lin6…

CyclicBarrier(循环屏障)源码解读与使用

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 什么是CyclicBarrier&#xff1f; 3. CyclicBarrier与CountDownL…

共享单车(一):项目配置

配置文件 对于很多程序中要用的参数如果是可变的&#xff0c;那么最好的处理方式就是通过main函数参数传递&#xff0c;或者从别的地方去获取&#xff0c;这其中之一就是配置文件&#xff0c;但是在一个成熟和架构完善的系统&#xff0c;一般都会做到自动配置&#xff0c;自动…

【刷题】前缀和入门

送给大家一句话&#xff1a; 既然已经做出了选择&#xff0c;最好还是先假定自己是对的。焦虑未来和后悔过去&#xff0c;只经历一个就够了。 – 张寒寺 《不正常人类症候群》 ☆ミヾ(∇≦((ヾ(≧∇≦)〃))≧∇)ノ彡☆ ☆ミヾ(∇≦((ヾ(≧∇≦)〃))≧∇)ノ彡☆ ☆ミヾ(∇≦((ヾ…

算法练习第17天|104.二叉树的最大深度 、559.N叉树的最大深度

104.二叉树的最大深度 104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/ 什么是二叉树的深度和高度&#xff1f; 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。最大深度…