python检测文件的MD值

使用hashlib模块,可对文件MD5一致性加密验证:

#python 检测文件MD5值
#python version 2.6

import hashlib
import os,sys

#简单的测试一个字符串的MD5值
def GetStrMd5(src):
    m0=hashlib.md5()
    m0.update(src)
    print m0.hexdigest()
    pass

#大文件的MD5值
def GetFileMd5(filename):
    if not os.path.isfile(filename):
        return
    myhash = hashlib.md5()
    f = file(filename,‘rb‘)
    while True:
        b = f.read(8096)
        if not b :
            break
        myhash.update(b)
    f.close()
    return myhash.hexdigest()

def CalcSha1(filepath):
    with open(filepath,‘rb‘) as f:
        sha1obj = hashlib.sha1()
        sha1obj.update(f.read())
        hash = sha1obj.hexdigest()
        print(hash)
        return hash

def CalcMD5(filepath):
    with open(filepath,‘rb‘) as f:
        md5obj = hashlib.md5()
        md5obj.update(f.read())
        hash = md5obj.hexdigest()
        print(hash)
        return hash        

if __name__ == "__main__":
    if len(sys.argv)==2 :
        hashfile = sys.argv[1]
        if not os.path.exists(hashfile):
            hashfile = os.path.join(os.path.dirname(__file__),hashfile)
            if not os.path.exists(hashfile):
                print("cannot found file")
            else
                CalcMD5(hashfile)
        else:
            CalcMD5(hashfile)
            #raw_input("pause")
    else:
        print("no filename")

  

时间: 2024-07-28 16:29:16

python检测文件的MD值的相关文章

python计算文件的md5值

前言 最近要开发一个基于python的合并文件夹/目录的程序,本来的想法是基于修改时间的比较,即判断文件有没有改变,比较两个文件的修改时间即可.这个想法在windows的pc端下测试没有问题. 但是当把一个文件从pc端复制到优盘时出现了一个问题,复制到优盘的文件比pc端的文件慢了两秒钟! 这里我用的复制函数是 shutil.copy2(),理论上它会把修改时间和最后访问时间也复制过来1,但是实际情况并不是完全相同. 详细情况我在segmentfault里提出了问题:为什么将一个文件从pc中复制到

用Python计算文件的MD5值

尽管计算MD5有很多小工具,重装系统后还得去找,就自己用Python写了一个: getMD5.py import hashlib import sys if __name__ == '__main__': if len(sys.argv)!= 2: sys.exit('argv error!') m = hashlib.md5() n = 1024*4 inp = open(sys.argv[1],'rb') while True: buf = inp.read(n) if buf: m.upd

python检测文件是否更新

import os import time filename = "test.txt" info = os.stat(filename) if time.time()-info.st_mtime > 600:#10分钟 print "done" else: print "modify"

检测日志文件的md5值如果N分钟后无变化则重启应用

计划任务添加如下: 每隔10分钟检测一次 */10 * * * * /bin/bash /data/scripts/check_md5sum.sh  /data/log/policy-root-new-4/policy-root-new-4.$(date +%Y-%m-%d).log    300   policy-root-new-4   policy-root-new-4  '/data/www/apps/policy-root-new-4/bin/boxrun'  restart chec

Python写自动化之获取文件的MD5值

使用Python 获取文件的MD5 值是一件很简单的事情,Python 提供了md5 和 hashlib 两个模块,都可以获取到文件的md5值. 代码如下: #获取文件的MD5值,适用于小文件 def getFileMD5(self,filepath): if self.isFile(filepath): f = open(filepath,'rb') md5obj = hashlib.md5() md5obj.update(f.read()) hash = md5obj.hexdigest()

python 通过文件路径获取文件hash值

1 import hashlib 2 import os,sys 3 4 def CalcSha1(filepath): 5 with open(filepath,'rb') as f: 6 sha1obj = hashlib.sha1() 7 sha1obj.update(f.read()) 8 hash = sha1obj.hexdigest() 9 print(hash) 10 return hash 11 12 def CalcMD5(filepath): 13 with open(fi

C#对文件进行MD5值检测

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.ComponentModel; 7 using System.Data; 8 using System.Drawing; 9 using System.IO; 10 using System.Security.Cryp

python 中文件输入输出及os模块对文件系统的操作

整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2.对打开文件进行读取时,readline()与readlines()的区别在于是否一次性的读取所有的内容,并将每行的信息作为列表中的一个子项. 例如:文件test.txt中 1,3,4 2,35,6 分别用readline与readlines对其进行读取 r=file_object.readline(

Python学习—文件操作

1.文件基础知识 1.文件是存储在外部介质上的数据的集合,文件的基本单位是字节,文件所含的字节数就是文件的长度.每个字节都有一个默认的位置,位置从0开始,文件头的位置就是0,文件尾的位置是文件内容结束后的后一个位置,该位置上没有文件内容,为空.文件的读写操作从文件指针所在的位置开始,即读会从文件指针所在的位置开始读取,写会从文件指针所在的位置开始写,如有内容,则会被覆盖.2.按文件中数据的组织形式把文件分为文本文件和二进制文件两类.文本文件存储的是常规字符串,由文本行组成,通常以换行符'\n'结