#read()やreadline()、readlines()の違いについてメモ
#前提
例えば、testsディレクトリに以下のテキストファイルがあったとする。
articles.txt
たま,眠いにゃー
しろ,腹減ったにゃー
クロ,なんだか暖かいにゃー
たま,ぽえーぽえーぽえー
#(1)read()※文字数制限あり
readメソッドは開いたファイル全体を文字列として取得する。\nは含まれる。
引数に数字を入れると字数制限をする。
with open('tests/articles.txt',encoding='utf-8') as f:
test = f.read(10)
print(test)
とすると、
たま,眠いにゃー
し
となる。
#(2)read()※文字数制限なし
引数に何も入れないと全てを取得する。
with open('tests/articles.txt',encoding='utf-8') as f:
test = f.read()
print(test)
とすると、
たま,眠いにゃー
しろ,腹減ったにゃー
クロ,なんだか暖かいにゃー
たま,ぽえーぽえーぽえー
となる。
#(3)readline
そのまま実行すると、ファイルを1行だけ読み込む。
with open('tests/articles.txt',encoding='utf-8')as f:
test= f.readline()
print(test)
とすると、
たま,眠いにゃー
となる。
#(4)readlines
ファイル全体を行ごとに分割したリストとして取得できる。
with open('tests/articles.txt',encoding='utf-8')as f:
test= f.readlines()
print(test)
とすると、
['たま,眠いにゃー\n', 'しろ,腹減ったにゃー\n', 'クロ,なんだか暖かいにゃー\n', 'たま,ぽえーぽえーぽえー\n']
となる。
#(5)まとめ
testsディレクトリにarticlesテキストファイルを設定し、test.pyを実行
まとめると以下の通りとなる。
┬test.py
└tests
└articles.txt
articles.txt
たま,眠いにゃー
しろ,腹減ったにゃー
クロ,なんだか暖かいにゃー
たま,ぽえーぽえーぽえー
test.py
with open('tests/articles.txt',encoding='utf-8') as f:
test = f.read(10)
print('\n'+'\n'+test)
print('\n--------------------------\n')
with open('tests/articles.txt',encoding='utf-8') as f:
test = f.read()
print(test)
print('\n--------------------------\n')
with open('tests/articles.txt',encoding='utf-8') as f:
test= f.readline()
print(test)
print('\n--------------------------\n')
with open('tests/articles.txt',encoding='utf-8') as f:
test= f.readlines()
print(test)
print('\n'+'\n')
たま,眠いにゃー
し
--------------------------
たま,眠いにゃー
しろ,腹減ったにゃー
クロ,なんだか暖かいにゃー
たま,ぽえーぽえーぽえー
--------------------------
たま,眠いにゃー
--------------------------
['たま,眠いにゃー\n', 'しろ,腹減ったにゃー\n', 'クロ,なんだか暖かいにゃー\n', 'たま,ぽえーぽえーぽえー\n']