Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python CSVモジュール:ステップバイステップガイド

Python CSVモジュールは、CSVファイルを処理するために使用されます。 CSVファイルには多くの情報を保持できます。CSVモジュールを使用すると、PythonでCSVファイルの読み取りと書き込みを行うことができます。 reader() および writer() 関数。


データの読み取り、書き込み、および操作は、プログラミングの重要な部分です。したがって、Pythonでファイルを処理する方法を知っておくと、外部ソースからデータを読み書きできるので便利です。

たとえば、あなたが地元のアイスクリームショップのオーナーで、顧客のトレンドについてもっと知りたいとしましょう。 Pythonを使用して、ユーザーの注文で収集したデータを分析し、人気のあるアイスクリームのフレーバー、それらのフレーバーに費やす金額などを調べることができます。

そこで、Python CSVモジュールが登場します。CSVファイルは大量のデータを保存するために使用され、CSVモジュールを使用するとPythonでそれらのファイルを解析できます。このチュートリアルでは、CSVPythonモジュールを使用してCSVファイルの読み取りと書き込みを行う方法について説明します。

CSVリフレッシャー

データを操作しているときに、そのデータのリストがコンマで区切られている場合があります。たとえば、値がコンマで区切られているアイスクリームの注文のリストがあるとします。このデータ構造は、CSVデータまたはカンマ区切り値と呼ばれます。

従来のテキストファイルは、データを保存する必要がある場合に役立ちますが、構造化データの保存には使用できません。一方、CSVファイルを使用すると、スプレッドシートやデータベースで構造化データを保存するのと同じように、コードで参照できる表形式で構造化データを保存できます。たとえば、アイスクリームのフレーバーやサプライヤー情報を保存するCSVファイルがあるとします。

CSVファイルの例を次に示します。

suppliers.csv

Hendersons Creamery, 123 Main Street, Cream
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles

このファイルには、サプライヤの名前、住所、およびサプライヤがビジネスに提供する製品の3つのアイテムが格納されています。このファイルには、HendersonsCreamery用とPetersonChocolate用の2行のデータも保存されています。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

データはCSVファイルで構造化されているため、Pythonプログラムを使用してデータを解析し、個々の列または行からデータを取得できます。

PythonCSVモジュール

Python CSVモジュールは、PythonでCSVデータを解析するために使用できます。したがって、たとえば、サプライヤ情報のCSVファイルがある場合は、CSVモジュールを使用してそのデータを取得して操作できます。

CSVは組み込みのPythonモジュールですが、使用を開始する前に、CSVをインポートする必要があります。 私たちのプログラムに。このコードを使用してこれを行うことができます:

import csv

CSVファイルの読み取り

CSVファイルのデータを操作する前に、ファイルを読み取る必要があります。 CSVモジュールには、reader()というメソッドが付属しています。 これは、CSVファイルをプログラムに読み込むために使用できます。リーダー関数は、指定されたファイルの各行を取得し、それを列のリストに変換します。

suppliers.csvというファイルにアイスクリームサプライヤーのリストがあるとします。 プログラムに読み込もうとしています。ファイルの内容は次のとおりです。

Hendersons Creamery, 123 Main Street, Cream
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones

このデータは、次のコードを使用して取得できます。

import csv
with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		print(c)

ここではたくさんのことが起こっているので、それを分解しましょう。最初の行で、csvをインポートします モジュール。コードでCSVメソッドを使用できます。次の行では、withを使用しています ファイルを開き、ファイルに値fを割り当てる必要があることを示すステートメント 。

次に、contents = csv.reader(f)を使用します csv.reader()を使用して、ファイルの内容を読み取ります 関数。最後に、プログラムは、CSVファイルの各行をループしてPythonシェルに出力するforループを作成します。

私たちのプログラムは以下を返します:

['Hendersons Creamery', ' 123 Main Street', ' Cream']
['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles']
['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']

ご覧のとおり、プログラムはファイルの内容を読み取り、各行を配列に変換しました。このデータができたので、プログラムで操作できます。

ショップが閉店するため、来週の注文をキャンセルする通知を送信するとします。このコードを使用して各サプライヤーの住所を取得し、通知を送信することができます:

…

	for c in contents:
		print(c[1])

プログラムが返されます:

123 Main Street
129 Second Street
17 Boston Avenue

このコードでは、forを作成します contentsの各行を通過するループ 変数。次に、各アイテムの値をインデックス番号1で出力します。 、この場合、各サプライヤのアドレスが含まれています。

ここで、ファイルから配列にデータを読み取りたいとしましょう。これは、後で使用するためにデータを別の変数に格納できるため、一般的な関数です。このアクションを実行するために使用できるコードは次のとおりです。

import csv

suppliers = []

with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		suppliers.append(c)

print(suppliers)
>

コードは次を返します:

[['Hendersons Creamery', ' 123 Main Street', ' Cream'], ['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles'], ['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']]

コードで何が起こっているのかを説明しましょう。私たちのプログラムはファイルsuppliers.csvを開きます 、ファイルを読み取り、各レコードを配列suppliersに追加します プログラムの開始時に宣言したこと。次に、プログラムは変数suppliersを出力します。 。

CSVファイルへの書き込み

CSVモジュールには、CSVファイルにデータを書き込むために使用できるメソッドが含まれています:writer()writer() 関数を使用すると、指定したファイルにデータを書き込んで、後で使用するためにデータを保存できます。

writer() 関数は、ファイルへの書き込みに使用できるオブジェクトを作成します。次に、ファイルにデータを書き込むために、writerow()を使用します メソッド。

各サプライヤレコードに新しい価値を追加するプログラムを作成したとしましょう。この値は、サプライヤーが特定の製品の主要サプライヤーであるかどうかを保持します。必要なデータをファイルに書き込むために使用できるコードは次のとおりです。

import csv

suppliers = []

with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		c.append("Yes")
		suppliers.append(c)

with open("new_suppliers.csv", "w") as f:
write_to_file = csv.writer(f)
for s in suppliers:
	write_to_file.writerow(s)

コードの開始は、前の例と非常によく似ています。ファイルsuppliers.csvを読み取ります その内容をsuppliersに移動します 配列。唯一の違いは、読み取り関数がYesという新しい値を追加することです。 サプライヤ配列の各アイテムに。この値は、サプライヤーが特定の製品の主要サプライヤーであるかどうかを示します。

次に、new_suppliers.csvという新しいファイルを開きます。 suppliersの内容を書いてください そのファイルに。 writer()を使用します 書き込み用にファイルを準備する関数。

次に、forを作成します suppliersを通過するループ 配列し、writerow()を使用します 各サプライヤーをnew_suppliers.csvに追加するメソッド ファイル。

コードは次を返します:

new_suppliers.csv

Hendersons Creamery, 123 Main Street, Cream,Yes
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes

ただし、suppliers全体を記述したい場合は、各アイテムをループする必要はありません。 ファイルへの変数。代わりに、writerows()を使用できます suppliersにすべてのアイテムを書き込むメソッド new_suppliers.csvの変数 ファイル。

使用するコードは次のとおりです。

…
	write_to_file = csv.writer(f)
	write_to_file.writerows(suppliers)

…

コードは次のようになります:

new_suppliers.csv

Hendersons Creamery, 123 Main Street, Cream,Yes
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes

CSVファイルの見積もり

上記の例では、コードはsuppliersを記述しました 表示されたとおりに新しいファイルに配列します。

ただし、各値を引用符で囲んでファイルに書き込みたい場合があります。たとえば、いくつかのサプライヤ名にカンマが含まれているサプライヤのリストがある場合、CSVファイルの形式が正しくなくなります。

CSVモジュールには、ファイルに書き込まれる値を引用符で囲むために使用できる4つの引用符関数が含まれているため、これは発生しません。これらの関数は、引数としてcsv.writer()に渡されます。 メソッド、および次のとおりです:

  • csv.QUOTE_ALL :すべての文字列を引用符で囲みます
  • csv.QUOTE_NONNUMERIC :すべての文字列フィールドを引用します
  • csv.QUOTE_MINIMAL :特殊文字でフィールドを引用する
  • csv.QUOTE_NONE :値を引用しないでください

したがって、suppliersのすべての値を引用したいとします。 ファイルに書き込まれるときの配列。次のコードを使用できます:

…

write_to_file = csv.writer(f, quoting=csv.QUOTE_ALL)

…

これで、プログラムを実行すると、new_suppliers.csv ファイルには次のものが含まれています:

"Hendersons Creamery"," 123 Main Street"," Cream","Yes"
"Peterson Chocolate"," 129 Second Street"," Chocolate Sprinkles","Yes"
"HW Smith and Co"," 17 Boston Avenue"," Ice Cream Cones","Yes"

結論

ファイルからのデータの読み取りとファイルへのデータの書き込みにより、Pythonプログラムから生成されたデータを取得して保存できます。たとえば、Pythonプログラム内で機能させたいアイスクリームのフレーバーと価格のメニューがある場合は、データをファイルに保存することをお勧めします。

このチュートリアルでは、PythonCSVモジュールの基本とその仕組みについて説明しました。また、reader()を使用してファイルを読み書きする方法についても説明しました。 およびwriter() オブジェクト。

これで、プロのようにPythonを使用してCSVファイルからデータを読み取ったりCSVファイルにデータを書き込んだりする準備が整いました。

世界中の企業が、Pythonでのコーディング方法を知っている人を採用しています。 をダウンロードします 無料のキャリアカルマアプリ 今日、Pythonを学ぶことで、テクノロジー業界でのキャリアに参入するのにどのように役立つかについて詳しく知ることができます。


  1. Pythonの継承:ステップバイステップガイド

    Pythonの継承とは、サブクラスが別のクラスのコードを使用する場合です。継承は、Pythonのようなオブジェクト指向言語の重要な機能であり、コーディングをより簡単かつ効率的にします。 Pythonはオブジェクト指向言語です。つまり、コードをより効率的にするために、再利用可能なコードブロックの作成をサポートしています。これが発生する方法の1つは、あるサブクラスが別のクラスのコードを使用できる継承によるものです。 たとえば、「銀行口座」を格納するクラスがあり、「銀行口座」の既存のクラスの属性を参照できる「ゴールド銀行口座」を格納するサブクラスを作成したい場合があります。 このチュート

  2. Pythonインタープリター:ステップバイステップガイド

    Pythonインタープリターは、マシンに正しいバージョンのPythonがインストールされていることを確認しなくてもオンラインで存在するため、Pythonは非常にアクセスしやすく学習できます。この記事では、Pythonインタープリターとは何かについて説明し、オンラインで使用できる、より人気のある、初心者向けのインタープリターをいくつかリストします。 Pythonプログラムはどのように実行されますか? Pythonは、Javaと同様に、インタプリタ言語またはコンパイル言語として完全に分類することはできません。両方のほんの少しです。 この場合にコンパイルされるということは、どの