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ファイルの読み込み方法でした。
コメント