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

嗨,我刚刚开始学习Python,但我现在有点卡住了。

我有hash.txt文件,其中包含MD5,Sha1和Sha5中的数千个恶意软件哈希,分别由每行中的分隔符分隔。 下面是我从.txt文件中提取的2个示例行。

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

我的意图是显示前32个字符(MD5散列),所以输出将如下所示:

416d76b8811b0ddae2fdad8f4721ddbe 56a99a4205a4d6cab2dcae414a5670fd

有任何想法吗?

您可以非常容易地“切分” 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 

由于有一个分隔符,你应该使用它,而不用担心md5的时间。

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

另外

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