पायथन में एक स्ट्रिंग के पहले कुछ अक्षर कैसे प्रदर्शित करें?


87

नमस्ते, मैंने अभी-अभी अजगर सीखना शुरू किया है लेकिन मैं अभी अटका हुआ हूँ।

मेरे पास hash.txtएमडी 5, शा 1 और शा 5 में क्रमशः हजारों मैलवेयर हैश है जिसमें प्रत्येक पंक्ति में सीमांकक द्वारा अलग किया गया है। नीचे 2 उदाहरण लाइनें हैं जो मैंने .txt फ़ाइल से निकाली हैं।

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

मेरा इरादा पहले 32 अक्षर (MD5 हैश) प्रदर्शित करना है, इसलिए आउटपुट कुछ इस तरह दिखाई देगा:

416d76b8811b0ddae2fdad8f4721ddbe 56a99a4205a4d6cab2dcae414a5670fd

कोई विचार?


7
पायथन के इस संक्षिप्त परिचय को पढ़ें , और लगभग आधा नीचे स्क्रॉल करें। "स्ट्रिंग स्लाइसिंग" जो आप चाहते हैं।
— जोएल कॉर्नेट

11
the_string[:32]
— जेर्नार्डो

2
स्ट्रिंग स्लाइसिंग और अगर आपने पहले से ही नहीं पढ़ा है तो फाइलें कैसे खोलें
— César

2
आप शायद .split()और .strip()स्ट्रिंग्स के तरीकों में रुचि रखने वाले हैं। उदाहरण के लिए, md5, sha1, sha5 = line.strip().split("|")बहुत अधिक है कि आप क्या अनुमान लगा सकते हैं।
— DSM

1
आपकी टिप्पणियों के लिए धन्यवाद दोस्तों मुझे आखिरकार यह काम करने के लिए मिला। मैंने प्रत्येक विधि की कोशिश की और ऐसा लगता है कि टैंकरस्मैश का काम मेरे लिए सबसे सुविधाजनक है। मैं प्रत्येक की और सभी की मदद की सराहना करता हूँ!
— राइजिंग ली

जवाबों:


185

आप 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

1
the_string.split ('|') [0]
— César

3
@ सेसर: इस तथ्य को दिखाने के लिए आम तौर पर बेहतर (और तेज) है कि आपको केवल विभाजित स्ट्रिंग के पहले भाग की आवश्यकता है the_string.split('|', 1)[0]।
— एरिक ओ लेबिगॉट

16

चूंकि एक सीमांकक है, इसलिए आपको इस बारे में चिंता करने की बजाय कि md5 कितना लंबा है, का उपयोग करना चाहिए।

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

वैकल्पिक रूप से

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

2
+1 चर लंबाई हैश के लिए सीमांकक सामग्री पर विचार करने के लिए :-) :-)
— विनायक कोलागी जूल

0

यदि आप एक स्ट्रिंग के पहले 2 अक्षर और अंतिम 2 अक्षर चाहते हैं तो आप निम्न कोड का उपयोग कर सकते हैं: name = "India" name[0:2]="In" names[-2:]="ia"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.