私はスペースなしPythonの - UnicodeのファイルIO
例
Ⓜ
とUnicode文字の束と1行のtxtファイルを持っていると私はtxtファイル出力したいです各行に1文字ずつ
私がこれをしようとすると、最終的にはユニコードのキャラクターが分割されてしまいますが、どうすればこの問題を解決できますか?
私はスペースなしPythonの - UnicodeのファイルIO
例
Ⓜ
とUnicode文字の束と1行のtxtファイルを持っていると私はtxtファイル出力したいです各行に1文字ずつ
私がこれをしようとすると、最終的にはユニコードのキャラクターが分割されてしまいますが、どうすればこの問題を解決できますか?
これは、Unicode文字の束を持つテキストファイルのようなものはありませんPythonの3.5で
line = ""
with open("file.txt", "w", encoding="utf8") as f:
f.write("\n".join(line))
を動作しますが、それだけでファイルが読み込まれた後、「Unicodeオブジェクト」について話すことは理にかなっていますPythonオブジェクトにデコードされます。テキストファイルのデータは、一方向または他の方法で符号化されます。
問題は、文字を正しくUnicodeオブジェクトにデコードするためにファイルを正しく読み取ることです。
import io
enc_source = enc_target = 'utf-8'
with io.open('my_file.txt', encoding=enc_source) as f:
the_line = f.read().strip()
with io.open('output.txt', mode='w', encoding=enc_target) as f:
f.writelines([c + '\n' for c in the_line])
上記の説明では、ターゲットファイルとソースファイルのエンコードが両方ともutf-8であると仮定しています。これは必ずしも当てはまるわけではなく、ソースファイルがどのようにエンコードされているかを知る必要があります。あなたはenc_target
を選択することになりますが、誰かがあなたにenc_source
を伝えなければなりません(ファイル自体はあなたに伝えられません)。
これまでに試したコードを含めることはできますか? –