में बड़ी फ़ाइलों के लिए SHA-1 हैश की गणना करते समय पाइथन क्रैश हो रहा है। मुझे आश्चर्य है कि क्या मुझे इस पायथन स्क्रिप्ट पर कुछ ताजा आंखें मिल सकती हैं। यह छोटे और मध्यम आकार की फाइलों के साथ ठीक काम करता है लेकिन कुछ मिनटों के साथ चलने के बाद बड़े (4-8 जीबी या इससे भी) यह अकल्पनीय दुर्घटनाओं के साथ काम करता है।विंडोज ओएस
या:
import sys
import msvcrt
import hashlib
#Print the file name (and its location) to be hashed
print 'File: ' + str(sys.argv[1])
#Set "SHA1Hash" equal to SHA-1 hash
SHA1Hash = hashlib.sha1()
#Open file specified by "sys.argv[1]" in read only (r) and binary (b) mode
File = open(sys.argv[1], 'rb')
#Get the SHA-1 hash for the contents of the specified file
SHA1Hash.update(File.read())
#Close the file
File.close()
#Set "SHA1HashBase16" equal to the hexadecimal of "SHA1Hash"
SHA1HashBase16 = SHA1Hash.hexdigest()
#Print the SHA-1 (hexadecimal) hash of the file
print 'SHA-1: ' + SHA1HashBase16
#Make a blank line
print ' '
#Print "Press any key to continue..."
print 'Press any key to continue...'
#"Press any key to continue..." delay
char=0
while not char:
char=msvcrt.getch()
* अद्यतन *
कार्य की गणना बड़ी फ़ाइलों के SHA-1 हैश के लिए अजगर स्क्रिप्ट। कोड के लिए क्या गलत था और टॉम ज़िच को इंगित करने के लिए धन्यवाद इग्नासिओ वाज़्यूज़-एब्राम में जाता है।
बस का उपयोग खींचें और फ़ाइल ड्रॉप करने के लिए स्क्रिप्ट के शीर्ष पर टुकड़ों में बांटा जा सकता है। वैकल्पिक रूप से आप या तो के उपयोग के साथ एक कमांड प्रॉम्प्ट का उपयोग कर सकते हैं:
SHA-1HashGen.py Path&File
थे SHA-1HashGen.py स्क्रिप्ट और पथ & फ़ाइल का फ़ाइल नाम है फ़ाइल का पथ और फ़ाइल नाम टुकड़ों में बांटा जा रहा है।
या स्क्रिप्ट को एक सही क्लिक विकल्प के रूप में प्राप्त करने के लिए SendTo फ़ोल्डर (विंडोज ओएस में; खोल: sendto) में ड्रॉप करें।
"क्रैश" परिभाषित करें। –
टर्मिनल विंडो हैश की गणना के बीच में तुरंत बंद हो जाती है। – Peter
क्या लायक है: आपको कमांड प्रॉम्प्ट से अपनी पायथन स्क्रिप्ट लॉन्च करने का प्रयास करना चाहिए। इस तरह त्रुटि पर एक और जानकारी मिल जाएगी। –