【python】csvをreaderで読込んでlistに格納するには

python

pythonでcsvを読み込んでlistに格納したい人

pythonでcsvを読み込んでlistに格納したい人
「pythonのlistにcsvを格納するにはどうしたらいいでしょうか?具体的な使用例としてコピペできるソースコードも欲しいです。」

こんな疑問を解決します。

概要:csvライブラリとreaderを使ってlistに格納します

概要

具体例

次のcsvをpythonに読み込ませます

1,2,3,4,5

 
csv操作用のライブラリは組み込みではないので、事前にライブラリを読み込みます。

import csv

 
プログラムコードは以下の通りです。

import csv
 
input_file=open("python_test.csv")
f = csv.reader(input_file, delimiter=",")
next(f)
f.close()
 

 
実行結果は以下の通りです。

 
['1', '2', '3', '4', '5']
 

 

本記事の内容

  • 1.概要:csvライブラリとreaderを使ってlistに格納します(解説済み)
  • 2.複数行のcsvの読み込み
  • 3.カンマ区切りの例外(エスケープ)設定

この記事を書いている私はIT業界歴12年、年収1,000万円ちょっとの金融系エンジニアです。学生時代から様々なプログラミング言語を扱ってきましたが、その中でもpythonはとても扱いやすく生産性も高く、オススメの言語です。

本記事では、pythonでcsvをlistに読み込む方法を解説します。具体例を示し、細かい構文に迷ったときにコピー&ペーストして使えることも目指しました。少しでもお役に立てますと幸いです。

複数行のcsvの読み込み

csvの読み込み

様々なcsvを読み込む方法を解説したいと思います。まずは複数行のcsvをlistに読み込む方法です。以下のcsvをpythonで読み込みます。

1,2,3,4,5
6,7,8

 
next関数をデフォルト値で用いると、行ごとの値をリストに読み込みます。2行のcsvデータを、2回next関数を呼び出すことで2つのリストに読み出す例を示します。

 
input_file=open("python_test.csv")
f = csv.reader(input_file, delimiter=",")
next(f)
next(f)
f.close()
 

 
実行結果は以下の通りです。

 
['1', '2', '3', '4', '5']
['6', '7', '8']
 

カンマ区切りの例外(エスケープ)設定

カンマ区切りの例外設定(エスケープ)

次のcsvを読み込むとどうなるでしょうか。

1,2,"3,4"

 
next関数をデフォルト値で用いると、行ごとの値をリストに読み込みます。2行のcsvデータを、2回next関数を呼び出すことで2つのリストに読み出す例を示します。

 
input_file=open("python_test.csv")
f = csv.reader(input_file, delimiter=",")
next(f)
f.close()
 

 
実行結果は以下の通りです。”3,4″は区切られずに1つのデータになります。これは、区切りの例外として"(ダブルクォート)が機能しているためです。

 
['1', '2', '3,4']
 

区切りの例外文字を変える

区切り文字列を"(ダブルクォート)から'(シングルクォート)に変更して同じcsvを読み込みます。

 
input_file=open("python_test3.csv")
f = csv.reader(input_file, delimiter=",", quotechar="'") #例外文字を'に変更
next(f)
 

 
実行結果は以下の通りです。例外文字ではなくなったため、”3,4″はlist中の別要素として区切られました。

 
['1', '2', '"3', '4"']
 

 
今回は以上です。csvの読み込み方法について解説しました。本記事の内容がプログラミングする際の参考になりましたら幸いです。

pythonは自動車、半導体メーカーなどでも使われています