Vorwort
Unter Linux gibt es einen Befehl namens md5sum, der den MD5-Wert einer Datei generieren kann. Im Allgemeinen wird das Ergebnis zur Überprüfung in einer Datei aufgezeichnet. Beispielsweise wird es wie folgt verwendet:
[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
Unter anderem wird md5sum -c verwendet, um zu überprüfen, ob der generierte MD5-Wert korrekt ist.
Verwenden Sie Python, um Datei-MD5-Werte zu generieren und Ergebnisdateien zu generieren, die mit den MD5sum-Ergebnissen identisch sind
Python kann das MD5-Modul von Hashlib verwenden, um MD5-Prüfcodes für Dateiinhalte zu generieren. Wenn Sie dieselbe Ergebnisdatei wie MD5sum generieren möchten, müssen Sie nur den MD5-Ergebniswert und den Dateinamen in einer Zeile mit zwei Leerzeichen in der Mitte ausgeben.
Testcode:
# -*- 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)
Laufergebnisse:
[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
Hinweis
Wenn der unter Windows entwickelte Code direkt zur Ausführung an Linux übermittelt wird, schlägt die Codeausführung häufig fehl, da das Newline-Zeichen unter Windows rn und unter Linux n ist. Im Allgemeinen ist eine Konvertierung erforderlich.
Zusammenfassung
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels jedem beim Lernen oder Arbeiten helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung der chinesischen PHP-Website.
Weitere verwandte Artikel zur Verwendung von Python zum Generieren der MD5-Prüfwertfunktion für Dateien finden Sie auf der chinesischen PHP-Website!