Pythonでテキストファイルの改行コードをCRLFからLFに変換したい。
文字列を改行コードを指定してテキストファイルに保存する方法を以前に書いた。
より良い方法が見つかったので紹介する。
環境
- Windows 10
- Python 3.6.6
open()関数のnewline引数を使う
open()関数のnewline引数を使うと、改行コードを制御できる。
テキストファイルを読み込むとき、「newline=None」を指定すると、改行コードは\nになる。
テキストファイルに書き込むとき、「newline=\r」と指定すると、\nは\rになる。
ソースコード
ソースコードは下記の通り。
#! python3
# テキストファイルから文字列を読み込む
# newline=Noneを指定すると改行コードは\nになる
with open('test1.txt', 'r', encoding='utf-8', newline=None) as a_file:
txt = a_file.read()
# 文字列をテキストファイルに書き込む
# newline='\r'を指定すると改行コードは\rになる
with open('test2.txt', 'w', encoding='utf-8', newline='\n') as a_file:
# 文字列をバイト列にして保存する
a_file.write(txt)
CRLFからCRに変換されるのでタイトルとは違う結果になりますね