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

 

posted @ 2022-08-26 19:16  pd_liu  阅读(798)  评论(0编辑  收藏  举报