Форум сайта python.su
253
например bytearray используйте, надо чтобы просто элементы можно было изменить
Офлайн
857
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ему нужен wb, так как шифрование предполагает, что он шифрует данные и записывает получившуюся байтовую последовательность в файл, и она должна быть неизменной, тогда как текстовый режим допускает изменения текста
Ок у вас трешка? Может быть, сделайте “wt”.
Офлайн
253
doza_andя написал:
кодировка не принимается
doza_and
для трешки могу ошибаться.
Офлайн
0
Извиняюсь, что долго не отвечал не было возможности…
py.user.nextда именно с алгоритмом шифрования вожусь…,в начале темы писал, и код выложил …, там собственно не хватает нормальной записи в файл…
br3d, лучше ясно опиши, что ты делаешь
а то непонятно, толи ты просто с кодировками возишься, толи шифруешь с использованием алгоритма шифрования
от этого зависит, нужен тебе байтмассивный объект или обычный байтовый объект подойдёт
Офлайн
857
может тебе просто в исходнике заменить значки Δx на dx ?
у тебя print'ы для третьего питона, но на значок дельты реагирует второй питон
у второго питона по умолчанию кодировка исходника принимается ascii
у третьего питона по умолчанию кодировка исходника принимается utf-8
если у тебя исходник в cp1251, то он не сможет эти значки хранить
поэтому либо нужно исходник сделать в виде utf-8 и если у тебя второй питон, сверху написать # coding: utf-8
либо тебе нужно просто значок дельты заменить на подходящий для cp1251 и сверху написать # coding: cp1251
Отредактировано (Дек. 9, 2011 02:25:25)
Офлайн
0
br3di это число от 0 до 255
если у меня функция выплевывает числа (от 0 до 255) как их преобразовать
Офлайн