머리말
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 중국어 웹사이트에 주목하세요!