worldwideyrp回答ポイント 200ptウォッチ

Python にて open や codecs.open した際の \n の扱いについて


次の3行のUTF-8テキストファイル test.txt を読み込む処理をします
環境はWindows:改行CR+LFです

1行目\n1行目
2行目\n2行目
3行目\n3行目

Pythonコード:

>>> import codecs
>>> f = codecs.open("test.txt", "r", "utf-8")
>>> t = f.readline()
>>> print t

出力結果:
1行目\n1行目

\n の箇所で改行がされずそのまま文字として出力されています。
また、後半2行だけ変えてreadlines()で読み込みをします。

>>> ts = f.readlines()
>>> print ts

出力結果:
[u'1\u884c\u76ee\\n1\u884c\u76ee\r\n', u'2\u884c\u76ee\\n2\u884c\u76ee\r\n', u'3\u884c\u76ee\\n3\u884c\u76ee\r\n']

自動的に \n が \\n と変換されているように見えます
通常の open でも同様でした(行末は \r\n ではなく \n となった)

replace()にて \n → \\n という処理を自前で行ってから出力してきたので、今回のように勝手に \n という出力が出てきたことに少々戸惑っています

【質問】
・このように \n → \\n 自動変換の旨が記載されている公式ドキュメントのありかは?
・つまり総じて \ → \\ という変換が随時行われている、という理解で合っているか?
・この自動変換が起きうる組み込み関数等は他にあるか?

以上、どうぞ宜しくお願いいたします

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2014-04-10 22:03:55
終了日時
2014-04-17 22:05:04
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

Python343UTF-8628Windows5693Readline30関数2326LF48Cr54

人気の質問

メニュー

PC版