Если тогда заявления работают противоположно - 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.

Что мне не хватает?

0 ответов

Другие вопросы по тегам