python3实现指定目录下文件sha256及文件大小统计
作者:fengbingchun 发布时间:2023-11-26 15:37:00
标签:python3,sha256,文件统计
有时会统计某个目录下有哪些文件,每个文件的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()
执行操作如下:
执行结果及生成的prj_file_list.txt内容如下:
GitHub:Python_Test
来源:https://blog.csdn.net/fengbingchun/article/details/86665247


猜你喜欢
- 在Python中可以存储很大的值,如下面的Python示例程序:x = 1000000000000000000000000000000000
- 可以自动轮换的页签 tabs with auto play fucntion<html><head><meta
- 使用python实现文件导入,具体方法如下:文件样例可以自己random这里的temp1根据每一行的分隔符来读入,‘\n'表述回车t
- 从Keras转换成PB模型请注意,如果直接使用Keras2ONNX进行模型转换大概率会出现报错,这里笔者曾经进行过不同的尝试,最后都失败了。
- python中zip函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列
- 本次薯片会讨论了关于分类与类型的问题。怎么找一个item?页面导航一般分类为主,在具体的分类展示下选择类型:典型例子:炫铃(QQ客户端)当只
- 创建一个NNimport tensorflow as tfimport numpy as np#fake datax = np.linspa
- 有1张表, Wages 表 ------------------------------------------- Emp_id&
- 本文实例讲述了python判断windows系统是32位还是64位的方法。分享给大家供大家参考。具体分析如下:通常64的windows系统p
- 简介:psutil(进程和系统实用程序)是一个跨平台库,用于检索Python中运行进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息
- map()是一个 Python 内建函数,它允许你不需要使用循环就可以编写简洁的代码。一、Python map() 函数这个map()函数采
- 直方图的定义直方图的性质只统计某个灰度级出现的次数,图像的大小不一样的话, 某灰度值的像素出现的次数是不一样的。那如果我们在这基础上除以像素
- 背景最近在负责开发维护的一款数据平台,有一个功能是把数据从某个源头数据源(如常规的JDBC数据源,MySQL,Oracle等)推到目地数据源
- 代码如下: '排序 Function Sort1(ary) Dim KeepChecking,I,FirstValue,Second
- 一、安装 → pyinstaller1.1 方式1:cmd1. 调出运行窗口:win + r, 并输入 cmd2. 切换到 pip.exe
- 目录搭建Vuex环境总结搭建Vuex环境在src目录下创建一个文件夹store,在store文件夹内创建一个index.js文件index.
- 有时候我不需要网络立即执行更改的数据。请问如何做到? 用下列办法即可延时执行:<%@import&
- 研究了一段时间酷狗音乐的接口,完美破解了其vip音乐下载方式,想着能更好的追求开源,故写下此篇文章,本文仅供学习参考。虽然没什么
- 1,js取得IP地址的方法一<script src="http://pv.sohu.com/cityjson?ie=utf-
- Access SQL 函数 收藏 ▲日期/时间CDate 将字符串转化成为日期 select CDate("2005/