【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 ファイルの読み込み(入力)と書き込み(出力)処理について解説しました。

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

ではでは。

 

プログラミング学習、独学では難しくないですが?
  • プログラミングをどう勉強したらいいのかわからない
  • わかりにくい参考書が多く、自分一人では解決できそうにない
  • 壁にぶつかった時の解決策がわからない
そんな人にはプログラミングスクールtech boost」がおすすめです。

 
 

プログラミングスクールtech boost」の魅力
  1. オーダメイドの自分の目標にあったプランが受講できる!
  2. 現役エンジニアがあなたの学習を全力サポート!
  3. スクール卒業後のキャリアサポートも充実インターン/就職/転職/独立 など
  4. オリジナル Web アプリも作れるようになります!
  5. 近年トレンドの AI や IoT、ブロックチェーンも学習できます!
  6. 受講スタイル(通学かオンライン授業)も選択可能!

 

こんな人におすすめ!

  • 未経験からでもプログラミングをしっかり学びたい!

未経験からでも受講期間中にオリジナルサービス開発レベルまで全力でサポートします。

 

  • プログラミングを一人で学ぶことに限界を感じた!

未経験で一からプログラミング学習するには限界があります。

現役エンジニアがあなたの目標に沿った学習プランを提案してくれるので安心して学習できます。

 

  • 技術力をつけて、IT企業に就職やフリーランス、独立を目指したい!

卒業後のキャリアサポートも充実しているため、未経験からも IT 業界に参入できます。

 

悩んでいるなら、お気軽に無料説明会へ!

現役エンジニアの私がいいますが、IT 業界は圧倒的な人材不足です。

 

スクールは料金が高いからなあ」と悩まれている人もいると思いますが、

IT業界は仕事が有り余っているため、一度学べば速攻で資金回収できます。

 

もしプログラミング学習で悩んでいたり将来的に IT企業、フリーランスなどで働きたいのであれば、

プログラミングスクール「tech boost」へ無料相談だけでもいってみてはいかがでしょうか?

おすすめの記事