【Python】CSVファイルの読み込み・書き込み(入力・出力)を簡単に解説!

どーもTakeです。

今回は Python で CSV ファイルの読み込み(入力)と書き込み(出力)処理についてわかりやすく解説します!!

 

ファイルの読み込み(入力)処理はざっくり下記のようにすればOKです。

ファイルの読み込み(入力)処理
  1. csv モジュールをインポート!
  2. 「open」でファイルをオープン!
  3. csv.reader でファイルの中身を読み込む!

 

またファイルの書き込み(入力)処理はざっくり下記のようにすればOKです。

ファイルの書き込み(入力)処理
  1. csv モジュールをインポート!
  2. 「open」でファイルをオープン!
  3. csv.writeでファイルの中身を読み込む!

 

またこの記事ではCSVファイルの読み込み(入力)と書き込み(出力)処理をする際に発生しうる問題点についてもまとめます!

問題点まとめ
CSVファイル読み込み(入力)時

  1. ダブルクォーテーションも表示させたい!
  2. 日本語がうまく読み込めない!
CSVファイル書き込み(出力)時

  1. 区切り文字を「カンマ」ではなく「空白」にしたい!
  2. 既存ファイルに追記したい!
  3. 文字コード「UTF-8」で出力したい!

 

 

詳細については以下に記述します。

ぜひこの記事を読んで参考にしていただければ幸いです。

 

スポンサーリンク

CSV ファイルの読み込み

まずは以下の内容の「test.csv」があるとします。

 

上記を読み込む際は、下記のようなソースコードを書きます。

 

上記ソースコードについて下記にまとめます。

  1. 「import csv」と記述することで Python 標準の「csv」モジュールを記述します。
  2. 「open」をつかって「test.csv」を開き、「csv.reader」から CSV ファイルの中身を配列「result」に格納させます。
  3. 最後に for 文を用いて配列「result」の中身を表示させる

 

実行結果、下記のようになります。

 

ダブルクォーテーションも表示させたい!

実行結果を下記のようにダブルクォーテーション付きで表示させたい場合があると思います。

 

そんなときは、csv.reader に 「quotechar」をつけます。

これは文字を囲む特殊文字を何にするか指定できます。

ダブルクォーテーションで囲む場合は「quotechar='|'」でできます。

 

日本語がうまく読み込めない!

例えば、以下のような「日本語」を含む CSV ファイルがあるとします。

 

これを下記のソースコードで読み込もうとすると旨く読み込めない場合があると思います。

 

つまりこんな感じ↓のエラーが表示されませんか?

 

これは CSV ファイルを読み込む際に文字コードを指定しなかったため、うまく読み込めなかったことが原因です。

そんなときは、「open」をする際に「encoding="utf-8"」を指定することで読み込むことが可能です。

 

下記が実行結果です。うまく読み込めてますね!

 

※ 今回はCSVファイルが「UTF-8」だったので読み込めましたが、ファイルの文字コードに合わせて値を変える必要があります!

 

CSV ファイルの出力処理

CSVファイルへの出力処理は以下のようなソースコードで実現できます。

 

上記ソースコードについて下記にまとめます。

  1. 「import csv」と記述することで Python 標準の「csv」モジュールを記述します。
  2. 「open」をつかって「test2.csv」を書き込みモードで開き、「csv.writer」から 「write」へ書き込む際の情報を格納させます。
  3. write.writerow で書き込みます。

 

区切り文字を「カンマ(,)」ではなく「空白」にしたい!

区切り文字をカンマから空白にしたい場合、csv.writer の delimiter = '  ' と指定することで実現できます。

具体的には下記のようなソースコードでできます。

 

既存ファイルに追記したい!

既存ファイルに追記する場合、openで「w」と指定する箇所を「a」と指定します。

 

実行結果、以下のように追記されていることが確認できます。

 

文字コード「UTF-8」で出力したい!

出力ファイルを文字コードを指定して出力させたい場合があると思います。

そんなときは「open」に 「encoding="utf-8"」を指定します。

 

最後に

いかがでしたでしょうか?

Python で CSV ファイルの読み込み(入力)と書き込み(出力)処理について解説しました。

この記事が参考になれば幸いです。

ではでは。

 

スポンサーリンク
おすすめの記事