doza_and
with open("output.txt","wb",encoding="utf-8") as f:
в третьем питоне в бинарном режиме кодировка не принимается
br3d
если у меня функция выплевывает числа (от 0 до 255) как их преобразовать в строку вида \xd0\xb0\xd0\xb1\xd0\xb2 ?
>>> bytes(range(10))
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t'
>>> def f():
... return (i for i in range(10))
...
>>> f()
<generator object <genexpr> at 0xb7524f54>
>>> bytes(f())
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t'
>>> bytes(f()) + bytes(f())
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\x00\x01\x02\x03\x04\x05\x06\x07\x08\t'
>>>
doza_and
Ок у вас трешка? Может быть, сделайте “wt”.
ему нужен
wb, так как шифрование предполагает, что он шифрует данные и записывает получившуюся байтовую последовательность в файл, и она должна быть неизменной, тогда как текстовый режим допускает изменения текста
этот файл потом используется для обратного восстановления (чтения и расшифровки) зашифрованных данных
br3d, лучше ясно опиши, что ты делаешь
а то непонятно, толи ты просто с кодировками возишься, толи шифруешь с использованием алгоритма шифрования
от этого зависит, нужен тебе байтмассивный объект или обычный байтовый объект подойдёт
bytes() создаёт константный объект (после создания нельзя поменять содержимое)
bytearray() создаёт меняемый объект (после создания можно поменять содержимое)