如何在Python中显示字符串的前几个字符?

101

我刚开始学习Python,但现在遇到了困难。

我有一个名为hash.txt的文件,其中包含数千个恶意软件哈希值,分别使用MD5、Sha1和Sha5分隔符分隔在每行中。以下是我从.txt文件中提取的两个示例行:

416d76b8811b0ddae2fdad8f4721ddbe | d4f656ee006e248f2f3a8a93a8aec5868788b927 | 12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f

56a99a4205a4d6cab2dcae414a5670fd | 612aeeeaa8aa432a7b96202847169ecae56b07ee | d17de7ca4c8f24ff49314f0f342dbe9243b10e9f3558c6193e2fd6bccb1be6d2

我的意图是显示第一个32个字符(MD5哈希),因此输出将类似于:

416d76b8811b0ddae2fdad8f4721ddbe 56a99a4205a4d6cab2dcae414a5670fd

有什么想法吗?


7
阅读这篇Python简介,然后向下滑动到中间位置。“字符串切片”就是你想要的内容。 - Joel Cornett
13
the_string[:32] - JBernardo
2
字符串切片以及如何打开文件(如果您还没有阅读过的话) - César
2
你可能也会对字符串的 .split().strip() 方法感兴趣。例如,md5, sha1, sha5 = line.strip().split("|") 基本上就是你猜测的那样。 - DSM
1
谢谢大家的评论,我终于让它正常工作了。我尝试了每一种方法,TankorSmash的方法似乎对我来说最方便。我感激每一个人的帮助! - Rising Lee
3个回答

207
你可以很容易地“切片”一个字符串,就像你从列表中取出项一样:

你可以很容易地“切片”一个字符串,就像从列表中取出项一样:

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

3
通常最好(也更快)的方法是使用the_string.split('|', 1)[0]来显示只需要分割字符串的第一部分。 - Eric O. Lebigot

18

因为存在分隔符,所以您应该使用该分隔符,而不必担心md5的长度。

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

或者

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

3
谢谢考虑考虑变长哈希的分隔符问题,给您点个赞 :-) - Vinayak Kolagi

3
如果您想获取字符串的前两个字母和后两个字母,可以使用以下代码: name = "India" name[0:2]="In" names[-2:]="ia"

请注意,此代码段保留HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接