Как отобразить первые несколько символов строки в Python?
Привет, я только начал изучать Python, но сейчас я как бы застрял.
У меня есть файл hash.txt
, содержащий тысячи вредоносных программ в MD5, Sha1 и Sha5, соответственно разделенных разделителями в каждой строке. Ниже приведены 2 строки примеров, извлеченные из файла .txt.
416d76b8811b0ddae2fdad8f4721ddbe | d4f656ee006e248f2f3a8a93a8aec5868788b927 | 12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f 56a99a4205a4d6cab2dcae414a5670fd | 612aeeeaa8aa432a7b96202847169ecae56b07ee | d17de7ca4c8f24ff49314f0f342dbe9243b10e9f3558c6193e2fd6bccb1be6d2
Мое намерение состоит в том, чтобы отображать первые 32 символа (хеш MD5), поэтому вывод будет выглядеть примерно так:
416d76b8811b0ddae2fdad8f4721ddbe 56a99a4205a4d6cab2dcae414a5670fd
Любые идеи?
Ответы
Ответ 1
Вы можете легко "нарезать" string
, так же, как вы вытаскиваете элементы из list
:
a_string = 'This is a string'
Чтобы получить первые 4 буквы:
first_four_letters = a_string[:4]
>>> 'This'
Или последние 5:
last_five_letters = a_string[-5:]
>>> 'string'
Итак, применив эту логику к вашей проблеме:
the_string = '416d76b8811b0ddae2fdad8f4721ddbe|d4f656ee006e248f2f3a8a93a8aec5868788b927|12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f '
first_32_chars = the_string[:32]
>>> 416d76b8811b0ddae2fdad8f4721ddbe
Ответ 2
Поскольку существует разделитель, вы должны использовать это, а не беспокоиться о том, как долго находится md5.
>>> s = "416d76b8811b0ddae2fdad8f4721ddbe|d4f656ee006e248f2f3a8a93a8aec5868788b927|12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f"
>>> md5sum, delim, rest = s.partition('|')
>>> md5sum
'416d76b8811b0ddae2fdad8f4721ddbe'
В качестве альтернативы
>>> md5sum, sha1sum, sha5sum = s.split('|')
>>> md5sum
'416d76b8811b0ddae2fdad8f4721ddbe'
>>> sha1sum
'd4f656ee006e248f2f3a8a93a8aec5868788b927'
>>> sha5sum
'12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f'
Ответ 3
Если вам нужны первые 2 буквы и последние 2 буквы строки, вы можете использовать следующий код:
name = "India"
name[0:2]="In"
names[-2:]="ia"