Когда я использую open()
для открытия файла, я не могу писать строки unicode. Я узнал, что мне нужно использовать codecs
и открыть файл с кодировкой Unicode (см. http://docs.python.org/howto/unicode.html#reading-and-writing-unicode-data).
Теперь мне нужно создать несколько временных файлов. Я попытался использовать библиотеку tempfile
, но у нее нет какой-либо опции кодирования. Когда я пытаюсь написать любую строку юникода во временном файле с tempfile
, он терпит неудачу:
#!/usr/bin/python2.6
# -*- coding: utf-8 -*-
import tempfile
with tempfile.TemporaryFile() as fh:
fh.write(u"Hello World: ä")
fh.seek(0)
for line in fh:
print line
Как создать временный файл с кодировкой Unicode в Python?
Edit:
-
Я использую Linux, и сообщение об ошибке, которое я получаю для этого кода:
Traceback (most recent call last): File "tmp_file.py", line 5, in <module> fh.write(u"Hello World: ä") UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 13: ordinal not in range(128)
- Это просто пример. На практике я пытаюсь написать строку, возвращаемую некоторым API.