を使っopen()
てファイルを開くと、Unicode文字列を書くことができません。codecs
Unicodeエンコーディングでファイルを使用して開く必要があることを学びました( http://docs.python.org/howto/unicode.html#reading-and-writing-unicode-dataを参照)。
次に、いくつかの一時ファイルを作成する必要があります。ライブラリを使用しようとしましたtempfile
が、エンコードオプションがありません。を使用して一時ファイルにUnicode文字列を書き込もうとすると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
PythonでUnicodeエンコーディングを使用して一時ファイルを作成するにはどうすればよいですか?
編集:
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が返す文字列を書き込もうとしています。