python3实现指定目录下文件sha256及文件大小统计


Posted in Python onFebruary 25, 2019

有时会统计某个目录下有哪些文件,每个文件的sha256及文件大小等相关信息,这里用python3写了个脚本用来实现此功能,此脚本可跨平台,同时支持windows和linux,脚本(get_dir_file_info.py)内容如下:

import os
import sys
import hashlib
 
def Usage():
 ''' usage description '''
 num = len(sys.argv)
 if num != 3:
 print("Error: please input two parameters")
 print("for example: {} path_name save_file_name".format(sys.argv[0]))
 sys.exit(1)
 
def GetFilesList():
 ''' get file list '''
 input_path_name = sys.argv[1]
 result = list()
 
 for dirpath, dirnames, filenames in os.walk(input_path_name, followlinks=True):
 for filename in filenames:
  file_path = os.path.join(dirpath, filename)
  result.append(file_path)
 
 result.sort()
 return result
 
def CalcFileSha256(filname):
 ''' calculate file sha256 '''
 with open(filname, "rb") as f:
 sha256obj = hashlib.sha256()
 sha256obj.update(f.read())
 hash_value = sha256obj.hexdigest()
 return hash_value
 
def CalcFileSize(filename):
 ''' calculate file size '''
 return os.stat(filename).st_size
 
def GetFileContent():
 ''' get file contnet '''
 files_list = GetFilesList()
 result = list()
 
 for f in files_list:
 hash = CalcFileSha256(f)
 size = CalcFileSize(f)
 file_name = os.path.basename(os.path.realpath(f))
 path_name = os.path.dirname(os.path.realpath(f))
 dictionary = {"path": path_name, "filename": file_name, "sha256": hash, "size": size}
 #print("result: {}".format(dictionary))
 result.append(dictionary)
 return result
 
def WriteToFile(contents):
 ''' write content to the specified file '''
 fp = open(sys.argv[2], "w")
 
 for content in contents:
 #print("content:", content)
 str0 = str(content)
 str1 = str0.replace("\\\\", "/")
 fp.write(str1)
 fp.write("\n")
 fp.close()
 
def ReplaceStr(src_str, new_str):
 ''' replace source string with new string '''
 contents = list()
 
 fp = open(sys.argv[2], "r")
 line = fp.readline()
 while line:
 contents.append(line)
 line = fp.readline()
 fp.close()
 
 fp = open(sys.argv[2], "w")
 for content in contents:
 str0 = content.replace(src_str, new_str)
 fp.write(str0)
 fp.close()
 
def main():
 Usage()
 WriteToFile(GetFileContent())
 ReplaceStr(" ", "")
 ReplaceStr("'", "\"")
 
if __name__ == "__main__":
 main()

执行操作如下:

python3实现指定目录下文件sha256及文件大小统计

执行结果及生成的prj_file_list.txt内容如下:

python3实现指定目录下文件sha256及文件大小统计

GitHub:Python_Test

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
python networkx 根据图的权重画图实现
Jul 10 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Django学习之文件上传与下载
Oct 06 Python
python生成器推导式用法简单示例
Oct 08 Python
Python 词典(Dict) 加载与保存示例
Dec 06 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
Python常用爬虫代码总结方便查询
Feb 25 #Python
Python使用paramiko操作linux的方法讲解
Feb 25 #Python
详解Django中CBV(Class Base Views)模型源码分析
Feb 25 #Python
Python判断对象是否相等及eq函数的讲解
Feb 25 #Python
详解django中url路由配置及渲染方式
Feb 25 #Python
利用python脚本如何简化jar操作命令
Feb 24 #Python
Python中如何使用if语句处理列表实例代码
Feb 24 #Python
You might like
如何在PHP中使用Oracle数据库(6)
2006/10/09 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
python发送HTTP请求的方法小结
2015/07/08 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
童装店创业计划书
2014/01/09 职场文书
高中军训感言800字
2014/03/05 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python