python编写文件统计脚本

思路:用os模块中的一些函数(os.listdir()、os.path.isdir()、os.path.join()、os.path.abspath()等)

实现功能:显示多级目录,以及自己要找的具体文件类型(例:以".py"结尾的文件),并读取每个文件的第一行(一般为注释说明,这样就能大致了解这个文件是干事什么的)

先编写二级目录文件统计脚本

代码如下:

#文件统计
os.chdir("F:\\pythonstudy")
for fp in os.listdir():
if os.path.isdir(fp):
print(os.path.join("f:\\pythonstudy",fp))
for f in os.listdir(fp):
if f.endswith(".py"):
print("\t",os.path.abspath(f)) #打印f的绝对路径
with open(fp+"\\"+f,encoding="utf-8") as f1:
print("\t",f1.readline()) #读取第一行

运行效果如下:

如何实现多级目录中文件的统计呢,这里用函数的递归调用方式来实现

代码如下:

#文件统计
def sfile(dir,layer=1):
print(" "*(layer-1)+dir)
for fp in os.listdir(dir):
nf=os.path.join(dir,fp)
if os.path.isdir(nf):
sfile(nf,layer+1)
else:
if nf.endswith(".py"):  #统计以".py"结尾的文件
print(" "*layer+nf,end="\t"*(5-layer))  #layer是为了美观,对整齐
layer是
为了美观,layer是 with open(nf,encoding="utf-8") as f1: print(f1.readline().strip()) sfile("f:\\sss")

运行效果如下:

上图可以看到实现了多级目录中统计".py"结尾的文件,并打印出每个文件的第一行。

如果想统计图片只需要简单的修改就好

def sfile(dir,layer=1):
print(" "*(layer-1)+dir)
for fp in os.listdir(dir):
nf=os.path.join(dir,fp)
if os.path.isdir(nf):
sfile(nf,layer+1)
else:
if nf.endswith(".jpg"):
print(" "*layer+nf,end="\t"*(5-layer)) sfile("f:\\sss")

运行效果如下:

注:想统计整个盘符下的某种文件类型,命令提示符(cmd)需要管理员权限,不然会提示拒绝访问

!!!!未解决问题:如何实现统计"F盘"中所有的jpg文件,但不显示(打印)目录中没有jpg文件的路径,只显示目录中有jpg文件的路径

本人脑袋要爆炸了,实在想不出,有想法的博友,给点意见

python编写文件统计脚本的更多相关文章

  1. python编写DDoS攻击脚本

    python编写DDoS攻击脚本 一.什么是DDoS攻击 DDoS攻击就是分布式的拒绝服务攻击,DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式.单一的DoS攻击一般是采用一对一方式的, ...

  2. 一个python的文件对比脚本

    脚本主要用来给游戏客户端做热更的. 处理方式就是针对每个文件求其MD5值,再根据文件的目录和名字对比两个版本的MD5值,如果不一样,则这次热更就需要更新这个文件. 用法很简单. 1,生成MD5码列表 ...

  3. python编写定时执行脚本

    前几天在抓博客园文章,打算每天抓10条最新的,所以就在脚本中加了定时让它在每天凌晨四点中时执行,但是昨天发现,报错了: 显示是远程主机强制关闭了一个链接, 原因是:mysql数据库默认当连续8小时不对 ...

  4. Python编写abaqus后处理脚本(学习笔记)

    本节内容参考自书籍<Python语言在Abaqus中的应用>,注意:以下代码为伪代码,仅供参考 1.导入必要的模块,加载后处理odb文件 from abaqus import * from ...

  5. Python 中文文件统计词频 + 中文词云

    1. 词频统计: import jieba txt = open("threekingdoms3.txt", "r", encoding='utf-8').re ...

  6. python编写shell脚本详细讲解

    python编写shell脚本详细讲解 那,python可以做shell脚本吗? 首先介绍一个函数: os.system(command) 这个函数可以调用shell运行命令行command并且返回它 ...

  7. 使用 Python 编写脚本并发布

    使用 Python 编写脚本并发布 P1: 脚本 通常在 Linux 服务器上会遇到在命令行中输入命令的操作,而有些操作包含的命令数目较多或者其中的命令包含的参数较多,如果一个一个的敲命令的话就太麻烦 ...

  8. python编写网络抓包分析脚本

    python编写网络抓包分析脚本 写网络抓包分析脚本,一个称手的sniffer工具是必不可少的,我习惯用Ethereal,简单,易用,基于winpcap的一个开源的软件 Ethereal自带许多协议的 ...

  9. Python大法之告别脚本小子系列—信息资产收集类脚本编写(下)

    作者:阿甫哥哥 原文来自:https://bbs.ichunqiu.com/article-1618-1.html 系列文章专辑:Python大法之告别脚本小子系列目录: 0×05 高精度字典生成脚本 ...

随机推荐

  1. spring-boot(五) RabbitMQ详解 定时任务

    学习文章来自:springboot(八):RabbitMQ详解 springboot(九):定时任务 RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分 ...

  2. Http协议中get和post的区别

    get(默认值)是通过URL传递表单值,数据追加在action属性后面. post传递的表单值是隐藏到http报文体中,url中看不到. get是通过url传递表单值,post通过url看不到表单域的 ...

  3. Yaml 文件中Condition If- else 判断的问题

    在做项目的CI/ CD 时,难免会用到 Travis.CI 和 AppVeyor 以及 CodeCov 来判断测试的覆盖率,今天突然遇到了一个问题,就是我需要在每次做测试的时候判断是否存在一个环境变量 ...

  4. Go语言学习笔记(三) [控制结构、内建函数]

    日期:2014年7月21日   一.控制结构   1.Go中,只有几个控制结构,它没有do或者while循环,有for,灵活的switch语句和if,在switch中可以接受像for那样可选的初始化语 ...

  5. MDK 中 [WEAK] 的作用

    简介 __weak 或 [weak] 具有相同的功能,用于定义变量或者函数,常见于定义函数,在 MDK 链接时优先链接定义为非 weak 的函数或变量,如果找不到则再链接 weak 函数. 在STM3 ...

  6. linux学习基础1

    简介 包含计算机组成,发行.核心思想.主要目录,一些命令ifconfig.echo.tty.startx.export.pwd.history.shutdown.poweroff.reboot.hwc ...

  7. Linux之定时任务Crond使用

    Linux之定时任务Crond使用 一.用法 crond服务是linux系统自带的服务,是不需要手动安装的: crond服务是一种守护进程: Linux中的用户使用contab命令来配置corn任务: ...

  8. spark之JDBC开发(连接数据库测试)

    spark之JDBC开发(连接数据库测试) 以下操作属于本地模式操作: 1.在Eclipse4.5中建立工程RDDToJDBC,并创建一个文件夹lib用于放置第三方驱动包 [hadoop@CloudD ...

  9. Webapi创建和使用 以及填坑(二)

    Webapi创建和使用 以及填坑(二) 上篇文章由于时间问题没能讲到POST提交,今天做一个补充 POST: 当我们直接通过POST发送方式发送会发现错误信息 参考解决:https://www.cnb ...

  10. 在Prism 框架中,实现主程序与模块间 UI 的通信

    背景: 在模块的UI中包含 TreeView 控件,在该树形控件的每一节点前面定义了一个复选框,如图 需求: 在两个不同的应用程序中使用该控件,而它在不同应用程序中的外观则并不一致,按照本例,即一个显 ...