web-dev-qa-db-fra.com

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

Bonjour, je viens juste de commencer à apprendre Python, mais je suis un peu coincé pour le moment. 

J'ai hash.txt fichier contenant des milliers de hachages de logiciels malveillants dans MD5, Sha1 et Sha5 respectivement séparés par des délimiteurs dans chaque ligne. Vous trouverez ci-dessous deux exemples de lignes extraites du fichier .txt.

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

Mon intention est d’afficher les 32 premiers caractères (hachage MD5) afin que la sortie ressemble à ceci:

416d76b8811b0ddae2fdad8f4721ddbe 56a99a4205a4d6cab2dcae414a5670fd

Des idées?

67
Rising Lee

Vous pouvez trancher une string très facilement, comme si vous extrayiez 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 derniers:

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

Donc, appliquant cette logique à votre problème:

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

Puisqu'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'

Alternativement

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

Si vous voulez 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"

0
Darshan Jain