問題の発生
ファイル操作がよくわからないのでまとめてみた
ファイルを読み込むとき
基本形)
python
with open('テキストファイル名','ファイル操作モード') as 置き換えるファイル名:
操作
例)
python
with open('test1.txt','r') as f:
s = f.read()
ファイル操作モードの種類
ファイル操作名 | 効果 |
---|---|
r | 読み込み |
w | 書き込み |
a | 追記 |
r+ | 読み込み+書き込み |
参照するファイル test1.txtの中身
ぼくはボブです
99歳です。
よろしくお願いします
読み込み
全ての行を読み込む
python
with open('test1.txt','r') as f:
s = f.read()
print(s)
#結果
#ぼくはボブです
#99歳です。
#よろしくお願いします
ファイル操作モードをr、read()メソッドを使用することでファイルの全体を一度に読み込むことができる。
ファイルの中身をリストで取得する
python
with open('test1.txt','r') as f:
s = f.readlines()
print(s)
'''結果
['ぼくはボブです\n', '99歳です。\n', 'よろしくお願いします']
'''
改行を取り除いたリストを作成したい場合は
python
s = [line.rstrip() for line in f.readlines()]
'''結果
['ぼくはボブです', '99歳です。', 'よろしくお願いします']
'''
先頭2行だけ読み込む
python
with open('test1.txt','r') as f:
for _ in range(2):
s = f.readline()
print(s)
#結果
#ぼくはボブです
#
#99歳です。
#
'''
結果に改行が入ってしまっているのは行の最後に\nが入ってしまっているからだ。
以下参照
ぼくはボブです\n
99歳です。\n
もし、改行を除きたいのであれば
f.readline().rstrip()
とすると改行を取り除ける
書き込み
python
with open('test1.txt','w') as f:
f.write('僕はジョンです\nすべて書き換えました')
test.1txtの中身
僕はジョンです
すべて書き換えました
ファイル操作モードをw、write()メソッドを使用することでファイルに書き込むことができる。もし、指定したファイルが存在しない場合は、指定したファイル名で新たにファイルが作成される
リストの書き込み
python
x_list = ['大変','疲れた','頑張ろう']
s = '\n'.join(x_list)
with open('test1.txt','w') as f:
f.write(s)
.join
を使用することで、リストの各要素を指定した文字で結合することができる。この場合、要素を改行で区切って、一つの文字列にしている。
'a'.join(x_list)
とすると
大変a疲れたa頑張ろう
aをつけて結合することができる
追記
python
with open('test1.txt','a') as f:
f.write('\n追記しました。')
test1.txtの中身
僕はジョンです
すべて書き換えました
追記しました。
ファイル操作をa、処理をwrite()とすることでファイルに追記することができる。
感想
ファイル操作の処理をまとめてみた。
同じところでつまづく初心者の方の手助けになれば幸いです