Python脚本批量计算文件md5值
最近需要整理重测序文件上传至NCBI,需要批量计算文件md5值。于是有了这篇随笔记录。
将以下代码保存,修改path设置为需要修改的文件夹的绝对路径,即可使用
#coding=utf-8
#代码含有中文注释,第一行代码不可删除,否则某些系统会导致报错
#该py脚本用于批量处理单个文件夹下大文件的md5值计算,即时输出单个文件的绝对路径以及md5值
#使用请修改path变量对应的文件路径为文件夹绝对路径即可
import hashlib
import os
import io
import sys
def printUsage():
print ('''Usage: [python] pymd5sum.py ''')
def geneMd5(filename):
m = hashlib.md5()
file = io.FileIO(filename,'r')
bytes = file.read(1024)
while(bytes != b''):
m.update(bytes)
bytes = file.read(1024)
file.close()
return m.hexdigest()
def main():
if(len(sys.argv) != 1 and len(sys.argv) != 2):
printUsage()
mat = "{:48}\t{:32}"
if(len(sys.argv)==1):
path="/Volumes/Expansion/upload_202208_AoB/fagz/unfinished" #请修改此行!此处对应需计算的文件夹绝对路径
if(len(sys.argv)==2):
path=sys.argv[1]
for fpathe,dirs,fs in os.walk(path):
for f in fs:
full_file = os.path.join(fpathe,f)
print (mat.format(full_file,geneMd5(full_file)))
main()
使用如下命令运行
python md5.py
若需要保存为txt文本,可使用重定向如下
python md5.py > md5.txt