J'essaie de générer le hachage MD5 basé sur un fichier txt. Cependant, il y a des règles que je dois suivre, comme:Python ne supprime pas la cartouche de retour et la ligne d'alimentation dans le fichier
- La règle de codage doit être « ISO-8859-1 »
- Tous les caractères doivent être en minuscules
- caractères Nouvelle ligne et caractères de retour chariot doivent pas être considérés sur la construction de hachage
Mon fichier contient\r
et\n
caractères, ce qui signifie une nouvelle ligne et retour cartouche. J'ai essayé de supprimer ces caractères en utilisant les fonctionsrstrip
etstrip
, mais il semble que cela n'a pas fonctionné. Pour être sûr de cela, j'ai écrit un fichier txt et l'ai ouvert sur Notepad ++ et, comme vous pouvez le voir sur l'image ci-dessous, les caractères sont toujours là.
Check the cr and lf characters in that image
J'ai essayé une autre solution: je fonction split
pour créer une liste, en utilisant \n
comme séparateur, juste pour être sûr que si les personnages sont vraiment là-dedans. Comme je le pensais, ils l'étaient.
Que dois-je faire pour vraiment supprimer ces caractères?
L'un des codes j'ai essayé:
from hashlib import md5
open_file = open('N0003977.290', 'r', encoding = 'ISO-8859-1')
test_file = open('file_test.txt', 'w')
file_content = open_file.read().lower().rstrip('\n\r ').strip('\n\r')
#writing a txt file to check if there are new line characters
test_file.write(file_content)
test_file.close()
#creating a md5 hash
m = md5()
m.update(file_content.encode('ISO-8859-1'))
print(m.hexdigest())
Utiliser 'str.replace' afin de remplacer ces caractères par une chaîne vide, c'est-à-dire 'file_content.replace ('\ n', '') .replace ('\ r', '')'. –
J'ai essayé ça aussi, mais ça n'a pas marché. :/ –
comment cela n'a-t-il pas fonctionné? –