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

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

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

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()

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

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

python

binary

io

buffer

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