Найти - Пользователи
Полная версия: из байт кода обратно в русский
Начало » Python для новичков » из байт кода обратно в русский
1 2 3
doza_and
например bytearray используйте, надо чтобы просто элементы можно было изменить
py.user.next
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() создаёт меняемый объект (после создания можно поменять содержимое)
doza_and
doza_and
кодировка не принимается
я написал:
doza_and
для трешки могу ошибаться.
br3d
Извиняюсь, что долго не отвечал не было возможности…


py.user.next
br3d, лучше ясно опиши, что ты делаешь
а то непонятно, толи ты просто с кодировками возишься, толи шифруешь с использованием алгоритма шифрования
от этого зависит, нужен тебе байтмассивный объект или обычный байтовый объект подойдёт
да именно с алгоритмом шифрования вожусь…,в начале темы писал, и код выложил …, там собственно не хватает нормальной записи в файл…
py.user.next
может тебе просто в исходнике заменить значки &#916;x на dx ?
у тебя print'ы для третьего питона, но на значок дельты реагирует второй питон
у второго питона по умолчанию кодировка исходника принимается ascii
у третьего питона по умолчанию кодировка исходника принимается utf-8

если у тебя исходник в cp1251, то он не сможет эти значки хранить
поэтому либо нужно исходник сделать в виде utf-8 и если у тебя второй питон, сверху написать # coding: utf-8
либо тебе нужно просто значок дельты заменить на подходящий для cp1251 и сверху написать # coding: cp1251
MadDevil
br3d
если у меня функция выплевывает числа (от 0 до 255) как их преобразовать
i это число от 0 до 255
в bytedata будет байт, который запиши в файл
bytedata=bytes()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB