>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 파일 md5 검사 값 함수를 생성하는 방법

Python을 사용하여 파일 md5 검사 값 함수를 생성하는 방법

高洛峰
高洛峰원래의
2017-01-14 11:48:003039검색

머리말

Linux에는 파일의 md5 값을 생성할 수 있는 md5sum이라는 명령이 있습니다. 일반적인 상황에서는 결과를 확인을 위해 파일에 기록합니다. 예를 들어

[crazyant@localhost PythonMd5]$ more sample_file 
www.crazyant.net
www.51projob.com
[crazyant@localhost PythonMd5]$ md5sum sample_file > sample_file.md5file
[crazyant@localhost PythonMd5]$ more sample_file.md5file 
311d384505e3622ccf85d88930e2b0a0 sample_file
[crazyant@localhost PythonMd5]$ md5sum -c sample_file.md5file 
sample_file: OK

그 중 md5sum -c는 생성된 md5 값이 맞는지 확인하는데 사용된다.

Python을 사용하여 파일 md5 값을 생성하고 md5sum 결과와 동일한 결과 파일을 생성합니다

Python은 hashlib의 md5 모듈을 사용하여 파일 내용에 대한 md5 검사 코드를 생성할 수 있습니다. md5sum과 동일한 결과 파일을 생성하려면 MD5 결과 값과 파일 이름을 중간에 공백 두 개를 포함하여 한 줄로 출력하면 됩니다.

테스트 코드:

# -*- encoding:utf-8 -*-
from hashlib import md5
import os
  
def generate_file_md5value(fpath):
 '''以文件路径作为参数,返回对文件md5后的值
 '''
 m = md5()
 # 需要使用二进制格式读取文件内容
 a_file = open(fpath, 'rb') 
 m.update(a_file.read())
 a_file.close()
 return m.hexdigest()
  
def generate_file_md5sumFile(fpath):
 fname = os.path.basename(fpath)
 fpath_md5 = "%s.md5" % fpath
 fout = open(fpath_md5, "w")
 fout.write("%s %s\n" % (generate_file_md5value(fpath), fname.strip()))
 print "generate success, fpath:%s" % fpath_md5
 fout.flush()
 fout.close()
  
if __name__ == "__main__":
 fpath = "/home/users/workbench/PythonMd5/sample_file"
 # 测试一:以文件路径作为参数,获得md5后的字符串
 print generate_file_md5value(fpath)
  
 # 测试二:生成和linux命令:md5sum同样结果的.md5文件
 generate_file_md5sumFile(fpath)

실행 결과:

[crazyant@localhost PythonMd5]$ python generateMd5file.py
311d384505e3622ccf85d88930e2b0a0
generate success, fpath:/home/crazyant/workbench/PythonMd5/sample_file.md5
[crazyant@localhost PythonMd5]$ md5sum -c sample_file.md5
sample_file: OK

참고

Windows에서 개발된 코드를 Linux에 직접 제출하여 실행하는 경우 Windows에서는 줄 바꿈 문자가 rn이고 Linux에서는 n이므로 코드 실행이 실패하는 경우가 많습니다.

요약

이상이 이 글의 전체 내용입니다. 모든 분들의 공부나 업무에 조금이나마 도움이 되었으면 좋겠습니다. 궁금한 점이 있으시면 메시지를 남겨주세요. PHP 중국어 웹사이트에 대한 귀하의 지원에 감사드립니다.

Python을 사용하여 파일 md5 검사 값 함수를 생성하는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.