openメソッド(Python)

外部の.txt ファイルを読み込むopen メソッドについて調べたのでメモ。

pythonでlistをファイルに保存し、読み込む方法(numpyも同様!)

Titles.txt

Stand Still - Wave Racer Remix
Slumber Party
Milky Way Stars (feat. TR)
At The End Of The Night

上記のような素のテキストファイルをリストに読み込みたいとして。

open(‘ファイルパス’, ‘モード’, <option>[encoding=’utf-8′])

ファイルパス ‘filepath/filename’ スクリプトからの相対参照
モード r 読み込み用
w 書き込み用
a 追加書き込み
r+ 読み込みと書き込み
w+ 読み込みと書き込み
a+ 読み込みと書き込み
b バイナリモード
option encoding utf-8, cp932(SJIS)など

open_file.py

Titles = []
f = open('Titles.txt', 'r')  
for x in f: 
    Titles.append(x.rstrip("\n")) 
for title in Titles: 
    print(title) 
f.close()

Titles.txt を読み込みモード’r’ でファイルオープンして、リストに一行づつ追加していきます。
for ループを2回廻すのがスマートではないですがリストの内容をプリントアウトしています。

f = open('Titles.txt', 'r') 
・ 
・ 
・ 
f.close()

とするところを、close忘れを防ぐ意味もあってwith ~asと記述するとファイルをオブジェクトf として扱えます。

Titles = []
with open('Titles.txt', 'r') as f:  
    for x in f: 
        Titles.append(x.rstrip("\n")) 
        print(x.rstrip("\n"))

1行づつファイルを読み込む上記コードもreadメソッドを使えばまとめてリストにできますね。改行コードも関係ないのかな。これ、もう分かんねえなぁ。

Titles = []
with open('Titles.txt', 'r') as f:
    Titles.append(f.read())
for x in Titles:
    print(x)

追記)Windows10 のVisual Studio Code のデバッグ機能を使って外部ファイルの読み込みをしていましたが一向に出力してくれないので、CentOS のbash を使ったところ正常に読み込んでくれました。

訂正)まとめてreadメソッドで読み込むコードのforループの参照オブジェクトに誤りがありましたので修正しました。