Python でリストに CSV を読み込む方法

Afia Ghazanfar 2023年10月10日
  1. Python で CSV をリストに読み込むには csv.reader を使用する
  2. 他のデリミタを用いて csv.reader を用いて Python で CSV をリストに読み込む
Python でリストに CSV を読み込む方法

この記事では、Python で CSV をリストに読み込む方法を紹介します。

以下のような内容の CSV ファイル Employees.csv があるとします。

Id Name Department email Salary
1 Sam Human Resource sam@gmail.com 65K
2 John Management john@gmail.com 58K
3 Tony IT tony@gmail.com 70K
4 Mike Accounts mike@gmail.com 35K

このファイルをテキストエディタで開くと、以下のようになります。

Id,Name,Department,email,Salary
1,Sam,Human Resource,sam@gmail.com,65K
2,John,Management,john@gmail.com,58K
3,Tonny,IT,tonny@gmail.com,70K
4,Mike,Accounts,mike@gmail.com,35K

それでは、上記の CSV ファイルのデータを Python のリストにインポートしてみましょう。

Python で CSV をリストに読み込むには csv.reader を使用する

Python には CSV というモジュールが組み込まれており、CSV ファイルの内容を読み込むためのリーダクラスがあります。Python で CSV をリストに読み込むコードの例は以下の通りです。

from csv import reader

with open("Employees.csv", "r") as csv_file:
    csv_reader = reader(csv_file)
    # Passing the cav_reader object to list() to get a list of lists
    list_of_rows = list(csv_reader)
    print(list_of_rows)

csv_reader = reader(csv_file) はファイル ojbect csv_filecsv.reader() 関数に渡し、reader オブジェクトを取得します。これはイテレータを返し、CSV ファイルの全行を繰り返し処理するために利用されます。

リストの各要素は CSV の行を意味し、リストの各項目は行内のセルや列を表します。

出力:

[['Id', 'Name', 'Company', 'email', 'Salary'], 
['1', 'Sam', 'Human Resource', 'sam@gmail.com', '65K'], 
['2', 'John', 'Management', 'john@gmail.com', '58K'], 
['3', 'Tonny', 'IT', 'tonny@gmail.com', '70K'], 
['4', 'Mike', 'Accounts', 'mike@gmail.com', '35K']]

他のデリミタを用いて csv.reader を用いて Python で CSV をリストに読み込む

関数 csv.reader は、値がカンマではなく他の文字で区切られているテキストファイルを読み込むオプションも提供しています。例えば、区切り文字にはタブや空白を用いることができます。このようなファイルを読み込むには、追加のパラメータ delimiter をリーダ関数に渡す必要があります。以下の例を参照してください。

ファイル Employees_TSV.csv が存在する場合、内容は Employees.csv と同じですが、カンマではなくタブで区切られています。

from csv import reader

with open("Employees_TSV.csv", "r") as csv_file:
    csv_reader = reader(csv_file, delimiter="\t")
    list_of_rows = list(csv_reader)
    print(list_of_rows)

上記のコードでタブ区切りの値ファイルからデータを読み込んでいます。delimiter = 't' は CSV ファイルのデリミタがタブであることを指定しています。

このコードの出力は上記と同じです。

関連記事 - Python List

関連記事 - Python CSV