Если тогда заявления работают противоположно - Python
В настоящее время я пытаюсь разделить список слов на два файла в зависимости от того, начинается ли первый бит хэша каждого слова с 0 или 1.
with open('output.txt', 'r') as source:
for line in source:
c = hashlib.sha1(bytes(line, encoding="ascii")).hexdigest()
b = BitArray(hex=c)
d = b[0]
if d == True:
with open('1bit.txt', 'a') as f1:
f1.write(line)
else:
with open('0bit.txt', 'a') as f2:
f2.write(line)
Я открываю файл, генерирую хэш sha1 для каждой строки, использую BitArray для преобразования, а затем определяю первый бит с помощью переменной 'd'.
Когда я печатаю переменную при устранении неполадок, и это приводит к '0b0', я ожидаю, что это слово окажется в файле 0bit.txt, однако после запуска скрипта я обнаружу, что слова, хэши которых начинаются с 0b0, заканчиваются вверх в 1bit.txt, а те, которые с 0b1, в конечном итоге в 0bit.txt.
Что мне не хватает?