Pythonのテキストファイル・CSVファイルの読み込みについて。
この記事の内容はコチラです
- Pythonでテキストファイルを読み込む
- csvファイルを読み込んで配列に入れる
- read、readline、readlinesの使い方
今回は、Pythonのテキストファイル・CSVファイルの読み込み方法を解説します。
テキストファイルを読み込む
PythonではCSVなどのテキストファイルを読み込むことができます。CSVファイルやTXTファイルなどのテキスト形式のファイルの中身を取得したいケースで使えます。
ファイル構文
# ファイルオープン open(ファイル名, ファイルモード, encoding = エンコード方式) # ファイルを全て読み込む ファイル変数.read() # ファイルを1行読み込む ファイル変数.readline() # ファイルをリストに読み込む ファイル変数.readlines() # ファイルクローズ ファイル変数.close()
オープン
Pythonでテキストファイルを読み込む前に「open」でファイルをオープンし、使い終わったら「close」で終了します。
ファイルモード
| ファイルモード | 説明 |
| r | 読み込み用 |
| w | 書き込み用。上書き |
| a | 書き込み用。追記 |
| x | 書き込み用。新規ファイル |
| b | バイナリ用 |
encoding
- shift_jis
- euc_jp
- utf-8
読み込み
| コマンド | 説明 |
| read | すべて読み取る |
| readline | 1行読み取る |
| readlines | リストに読み取る |
例1. CSVファイルを配列で読み取る readlines
# ファイルをリストに出力
file = open('c:\\pg\\file.csv', 'r')
f_list = file.readlines()
file.close()
# リストから1行ずつ読み込む
for f_line in f_list:
print(f_line)
#[結果] No1,No2,No3,No4,No5
#[結果] 1,2,3,4,5
#[結果] 11,12,13,14,15
#[結果] 21,22,23,24,25
#[結果] 31,32,33,34,35
Pythonの「open」でファイルをオープンしました。「r」なので読み取り専用モードでオープンしました。
「file.readlines」を使ってファイルの中身をリスト「file_lines」に取得しました。リストにすることでデータが扱いやすくなりました。
リスト「file_lines」を「for in」で取得し、CSVファイルの中身を1行ずつ取得しました。
この例では、エンコード方式を省略しましたが、省略するとOS標準のエンコードが使用されます。
パスの記述ですが、「\」をエスケープする必要があるため、「\」であれば「\\」と書きます。よって「c:\pg\file」の場合は「c:\\pg\\file」と書きます。
例2. CSVファイルを簡単に取得するwith ~ as
with open('c:\\pg\\file.csv', 'r', encoding = 'utf-8') as f_list:
for f_line in f_list:
print(f_line)
#[結果] No1,No2,No3,No4,No5
#[結果] 1,2,3,4,5
#[結果] 11,12,13,14,15
#[結果] 21,22,23,24,25
#[結果] 31,32,33,34,35
例1と同じことを「with ~ as」を使って実現しました。コード量を比較すると「with~ as」を使った方がスマートになります。
「with open(~) as 変数」という構文になります。
「with ~ as」を使うとその中だけでファイル処理が有効になるため「close」が必要ありません。「read」も必要ありません。特に「close」は記述忘れの心配もあるため、記述の必要がないのはとても便利です。
例3. CSVファイルの中身をすべて読み取る read
file = open('c:\\pg\\file.csv', 'r', encoding = 'utf-8')
file_data = file.read()
file.close()
print(file_data)
#[結果] No1,No2,No3,No4,No5
1,2,3,4,5
11,12,13,14,15
21,22,23,24,25
31,32,33,34,35
Pythonの「file.read」を使ってファイルの中身をすべて「file_data」に取得しました。このような使い方はあまりしないかもしれませんね。
これで「readlines」「readline」「read」「with」を使ってCSVファイルの中身を取得することができました。
以上、Pythonのテキストファイル・CSVファイルの読み込み方法でした。

コメント