Tecu.a2l adlı bir dosyanın sağlama toplamını denetleyen ve birkaç .md5 dosyasına benzeyen basit bir sağlama toplamı komut dosyası oluşturdum. Bu komut dosyası, her komut dosyasının tam olarak aynı sağlama toplamına sahip olmasını sağlayarak çalışan. Basit bir sağlama toplamı karşılaştırma komut dosyasıyla ilgili sorunları giderme
kolay şeyler anlamak yapmak için:i sağlama 1x2x3x ile tecu.a2l var düşünelim. Bu yüzden md5 dosyaları (doğru oluşturulduysa) aynı sağlama toplamına sahip olmalıdır (1x2x3x). Md5 dosyalarından biri, en yeni tecu.a2l'den daha farklı bir sağlama toplamına sahipse, bir hata verecektir.
Açıklamam, açıklamamı tam olarak anlamadıysanız boşlukları doldurabilir.
import hashlib
import dst_creator_constants as CONST
import Tkinter
path_a2l = 'C:<path>\tecu.a2l'
md5 = hashlib.md5()
blocks = 65565
with open(path_a2l, 'rb') as a2l:
readA2L = a2l.read(blocks)
generatedMD5 = md5.hexdigest()
print "stop1"
ihx_md5_files = CONST.PATH_DELIVERABLES_DST
for file in ihx_md5_files:
print "stop2"
if file.endswith('.md5'):
print "stop3"
readMD5 = file.read()
if compare_checksums:
print "Yes"
# Add successful TkInter msg here
else:
print "No"
# Add error msg here
def compare_checksums(generatedMD5, readMD5):
if generatedMD5 == readMD5:
return True
else:
return False
Bu komut dosyasını çalıştırdığımda hiçbir şey olmuyor. Mesaj yok, hiçbir şey. python checksum.py
'u cmd'ye yazıyorsam, mesaj göndermiyor. Bu yüzden, sorunun ne olabileceğini görmek için bazı print
ifadelerini ekledim. Sorun, stop3
'un komut isteminde hiçbir zaman gösterilmemesidir - bu, sorunun if file.endswith('.md5'):
bildirimi ile ilgili bir olaya sahip olduğu anlamına gelir.
Bu file.endswith()
ifadesini kullanmış olduğumdan önceki bir betikle ilgili olarak yazdığımdan dolayı neden suçlandığım konusunda hiçbir fikrim yok ve bununla ilgili olarak yazdım, böylece size dönüyorum.
Gerçekten işe yarasa, gerçekten, gerçekten sorun varsa, o zaman sorun başka bir yerdedir. Bize "CONST.PATH_DELIVERABLES_DST" tanımını veya bir baskısını gösterebilir misiniz? –
Ayrıca, compare_checksums' bir işlevin bir referansıdır. Bunu aramak için compare_checksums() 'i kullanmalısınız. –
Sadece bir yol 'path_a2l' gibi sadece 'dir' ihx_md5_files' olarak manuel olarak ekleyebilirsiniz ve ben yaptım .. ama yardımcı olmadı. Daha önce de aynı yol tanımını kullandım, bu yüzden sorun yok. parantez eklemek CMD'nin ne yazık ki 'stop3' yazmasına yardım etmedi. –