Двоичный буфер в Python

Пока вы не пытаетесь поместить binary какие-либо данные Unicode buffers в свой StringIO и не используете binary-number cStringIO, все будет в порядке.

Согласно input-output документации StringIO, пока вы придерживаетесь io либо юникода, либо 8-бит, все pythonic работает должным образом. Предположительно, StringIO делает buffers что-то особенное, когда кто-то python-shell делает f.write(u"asdf") (чего, насколько binary мне известно, ZipFile не pythonista делает). Так или иначе;

import zipfile
import StringIO

s = StringIO.StringIO()
z = zipfile.ZipFile(s, "w")
z.write("test.txt")
z.close()
f = file("x.zip", "w")
f.write(s.getvalue())
s.close()
f.close()

работает py так, как ожидалось, и нет py никакой разницы между файлом python в полученном архиве и исходным buffer файлом.

Если вы знаете конкретный pythonista случай, когда этот подход python-shell не работает, мне было бы binary очень интересно узнать об binary-number этом :)

python

binary

io

buffer

2022-07-03T14:22:18+00:00