2016-02-26 4 views
0

Все, что я говорю это в рамках python2Python кодирования объектного файла

Как я знаю, что я могу получить объект файла с помощью встроенного open функции. И файл-объект имеет атрибут с именем encoding, используемый для вывода строк Unicode.

Теперь я хочу написать файл со стандартным типом кодировки (не ASCII), я использую encoding, но он доступен только для чтения, возможно, это разумно.

Затем я попытался codecsgetwriter обертку (У меня есть файл объект уже), но кажется, что это будет что-нибудь, кодирующий кастрированный баран это Unicode типа или нет. Как я знаю, файл-файл будет проверять тип содержимого и кодировку файла как при записи.

Затем я проверил код Src питона, тип объекта файла предоставляет метод PyFile_SetEncoding установить кодировку, но используется только в sys модуль для stdin, stdout и stderr.

Есть ли способ разрешить файловому объекту кодировать содержимое для записи с использованием типа кодировки по умолчанию, если он имеет тип Unicode?

И я сомневаюсь, почему PyFile_SetEncoding предоставляется, но не применяется к нормальным файлам? Похоже, что тип кодировки по умолчанию может быть известен из самого файла, если он не пуст, или указать, какой тип кодирования я хочу записать, по крайней мере, в новый файл. Есть ли модуль, реализующий его?

Или, если я ошибаюсь, скажите, пожалуйста, спасибо.

+0

Вы можете изменить, как файл открывается? Похоже, вы должны использовать ['codecs.open'] (https://docs.python.org/2/library/codecs.html#codecs.open) вместо' open' из встроенного пространства имен. – user2357112

+0

Как я уже сказал, создатель потока кодеков будет кодировать что-либо перед записью. То, что я делаю сейчас, является обычным оберткой. –

+0

Что вы подразумеваете под этим? Вы пытаетесь написать строки Unicode и строки байтов через один и тот же файл-объект, не вызывая 'encode' или' decode'? Это звучит неплохо. – user2357112

ответ

0

В любом случае, я сам пишу module, что поддержка передается encoding параметру open, или set_encoding для существующего файлового объекта.

Смежные вопросы