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小技巧分享
Nov 22 Python
深入浅析Python字符编码
Nov 12 Python
对pandas中apply函数的用法详解
Apr 10 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
python三引号输出方法
Feb 27 Python
python实现抽奖小程序
Apr 15 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
python操作excel让工作自动化
Aug 09 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
python中sympy库求常微分方程的用法
Apr 28 Python
python如何求100以内的素数
May 27 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
SONY SRF-40W电路分析
2021/03/02 无线电
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
JS判定是否原生方法
2013/07/22 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
python实现读取命令行参数的方法
2015/05/22 Python
Python获取当前路径实现代码
2017/05/08 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
农村文化建设标语
2014/10/07 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
医院保洁员管理制度
2015/08/05 职场文书