Двоичный буфер в 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
Двоичный буфер в Python
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.