【python】テキストに行を追加したい

【python】テキストに行を追加したい

 テキストデータに行を追加して保存します。改行のため¥r¥nが必要なことに注意が必要です。(文中に出てくる¥は全て小文字にしてください。)

サンプルプログラム

【main.py】

# -*- coding: utf-8 -*-

import sys
import codecs 
from os import path

##自作モジュールのインポート##
m_path = path.join(path.dirname(__file__),"under")
sys.path.append(m_path)
import yomikomi

###read.txtの読み込み###
rf_name="read.txt"
read_path = path.join(path.dirname(__file__),rf_name)
read_file=yomikomi.d_yomikomi(read_path)
print(read_file)
#########################

###改行を追加する###########
length=len(read_file)
print(length)
last=read_file[length-1]
kaigyo=last+"\r\n"
read_file[length-1]=kaigyo
print(read_file)
#############################

###最終行に文字を追加する####
new_line="さしすせそ\r\n"
add=read_file.append(new_line)
print(read_file)
#############################



###データを保存する####
wf_name="write.txt"
w_path=path.join(path.dirname(__file__),wf_name)
w_txt = codecs.open(w_path, 'w', 'UTF-8')
for x in read_file:
    w_txt.write(x)
w_txt.close()
#######################

読み込んだテキストデータ【read.txt】

あいうえお
かきくけこ

実行結果&解説

【実行結果】

【解説】

 15行目まででread.txtを読み込んでいます。自作モジュールyomikomiはパス指定をするとリスト形式でデータを出力します。詳細はこちらを参照ください。
 16行目で読み込んだテキストをプリントしています。「かきくけこ」の最後に¥r¥nがないことに注目してください。¥r¥nは改行を示しますが、読み込んだread.txtの最後に改行がないため表示されません。
 19~26行目で「かきくけこ」に¥r¥nを追加しています。ここで追加せずにテキストデータを保存すると「かきくけこさしすせそ」と表示されてしまいます。
 28~32行目で「さしすせそ¥r¥n」を追加しています。¥r¥nを最後に追加したので保存されたwrite.txtは最後に改行を含みます。
 36~43でwite.txtにデータを保存しています。

【write.txt】

あいうえお
かきくけこ
さしすせそ

あとがき

 何気なく普段テキストを書いていますがpythonで保存する場合は改行も明示する必要があります。
 
【参考】
 【python】¥r¥nとか\nとか何なの!?
 【python】ファイルパス(path)の指定方法