【Python応用】「CSV」データの読み込み・書き込み操作方法

Python

ここではPythonにおける「CSV」データの操作方法について解説しています。

スポンサーリンク
スポンサーリンク

「CSV」とは

「CSV(Comma-Separated Values)」というカンマ区切りのテキストデータのファイル形式です。また、Web上のデータを落す際、誰でも一度はCSV形式のデータを見たことがある程、一般的な形式だと言えます。

似た形式にSSV(Space-Separated Values)とTSV(Tab-Separated Values)という形式があります。前者は半角スペースで区切られたもので、後者はタブで区切られたものになります。

「CSV」データの読み込み

以下のプログラムは任意の「CSV」データを読み込んで出力する内容になっています。ここでは、「test.csv」という名前で以下のようなデータを読み込んでみます。

「test.csv」の内容
#「CSV」データの読み込み
import codecs
#1---ファイルの指定
data_name = "test.csv"
csv_data = codecs.open(data_name,mode = "r",encoding="shift_jis").read()
#2---データ内容
data =[]
rows_data = csv_data.split("\r\n")
for row in rows_data:
    if row == "":continue
    cell_data = row.split(",")
    data.append(cell_data)
#3---出力
for out_data in data:
    print(out_data[0],out_data[1],out_data[2])

1の部分でファイルを指定します。ここで注意が必要なのが、open()メソッド内の「encoding」がshift-jisの点です。ExcelのCSVファイルの出力形式がshift-jisなので、ここではshift-jisを用いています。

次に2の部分でdataという格納する箱を用意して、区切りごとに格納しています。最後の3の部分で出力しています。

「CSV」データの書き込み

以下のプログラムは任意のデータをCSVファイルに書き込む内容になっています。

#「CSV」データの書き込み
import csv,codecs

#1---ファイルの指定
data_name = "test.csv"
with codecs.open(data_name,mode = "w",encoding="shift_jis") as out_data:
#2---データ内容
    write_data = csv.writer(out_data,delimiter=",",quotechar='"')
    write_data.writerow(["Time","ID","推移"])
    write_data.writerow(["9:00:00","8","1560"])
    write_data.writerow(["9:00:01","9","1780"])
    write_data.writerow(["9:00:02","10","2000"])

1の部分でファイルを指定します。ここで注意が必要なのは「mode=”w”」として、書き込みを指定している点です。次に2の部分で書き込みを行っています。ポイントとしては、「csv.writer」としてdelimiter(区切り文字)、quotechar(データをどの記号で囲むか)を指定しています。

csvwriter.writerow(row)

rowの部分に任意のデータを指定して、with構文で繰り返し書き込んでいます。

他にも「CSV」ファイルの便利な操作方法があります。以下のサイトを参考にしてみて下さい。

その他、CSVファイルの操作

項目内容
「Pandas」を用いた複数のCSVファイルの結合方法同一フォルダ内にあるCSVを「pandas」を用いてまとめて結合する方法について解説しています。
タイトルとURLをコピーしました