104 votes

Comment afficher les premiers caractères d'une chaîne de caractères en Python ?

Bonjour, je viens de commencer à apprendre Python mais je suis un peu bloqué en ce moment.

J'ai hash.txt fichier contenant des milliers de hachages de logiciels malveillants en MD5, Sha1 et Sha5 respectivement, séparés par des délimiteurs dans chaque ligne. Voici 2 exemples de lignes que j'ai extraites du fichier .txt.

416d76b8811b0ddae2fdad8f4721ddbe|d4f656ee006e248f2f3a8a93a8aec5868788b927|12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f 56a99a4205a4d6cab2dcae414a5670fd|612aeeeaa8aa432a7b96202847169ecae56b07ee|d17de7ca4c8f24ff49314f0f342dbe9243b10e9f3558c6193e2fd6bccb1be6d2

Mon intention est d'afficher les 32 premiers caractères (hachage MD5), de sorte que la sortie ressemblera à quelque chose comme ceci :

416d76b8811b0ddae2fdad8f4721ddbe 56a99a4205a4d6cab2dcae414a5670fd

Des idées ?

211voto

TankorSmash Points 3443

Vous pouvez "découper" une string très facilement, tout comme vous tireriez des éléments d'une list :

a_string = 'This is a string'

Pour obtenir les 4 premières lettres :

first_four_letters = a_string[:4]
>>> 'This'

Ou les 5 dernières :

last_five_letters = a_string[-5:]
>>> 'string'

Donc, en appliquant cette logique à votre problème :

the_string = '416d76b8811b0ddae2fdad8f4721ddbe|d4f656ee006e248f2f3a8a93a8aec5868788b927|12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f '
first_32_chars = the_string[:32]
>>> 416d76b8811b0ddae2fdad8f4721ddbe

18voto

gnibbler Points 103484

Comme il existe un délimiteur, vous devriez l'utiliser au lieu de vous soucier de la longueur du md5.

>>> s = "416d76b8811b0ddae2fdad8f4721ddbe|d4f656ee006e248f2f3a8a93a8aec5868788b927|12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f"
>>> md5sum, delim, rest = s.partition('|')
>>> md5sum
'416d76b8811b0ddae2fdad8f4721ddbe'

Ou bien

>>> md5sum, sha1sum, sha5sum = s.split('|')
>>> md5sum
'416d76b8811b0ddae2fdad8f4721ddbe'
>>> sha1sum
'd4f656ee006e248f2f3a8a93a8aec5868788b927'
>>> sha5sum
'12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f'

3voto

Darshan Jain Points 41

Si vous voulez les 2 premières lettres et les 2 dernières lettres d'une chaîne, vous pouvez utiliser le code suivant : name = "India" name[0:2]="In" names[-2:]="ia"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X