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

Python読み取り書き込みCSVファイル

この投稿では、PythonでCSVファイルを読み書きする方法を見ていきます。例では、CSVモジュールとパンダを使用しています。

PythonはCSVモジュールを使用してCSVファイルを読み取ります

このコード例は、orders.csvという名前のファイルを読み取ります データをループします:

import csv

f = open("orders.csv", "rt")
orders = csv.reader(f)
for order in orders:
    print(order)
f.close()

orders.csvの出力:

['OrderID', 'CustomerID', 'OrderDate']
['10248', '4', '10/02/2020']
['10249', '2', '10/02/2020']
['10250', '7', '10/02/2020']
CSVファイルを辞書として読み取る

DictReaderの使用 メソッドCSVファイルの各行は、辞書の行として表され、列ヘッダーがキーになります。

import csv

orders = csv.DictReader(open("orders.csv"))
for order in orders:
    print(order)

orders.csvの出力:

{'OrderID': '10248', 'CustomerID': '4', 'OrderDate': '10/02/2020'}
{'OrderID': '10249', 'CustomerID': '2', 'OrderDate': '10/02/2020'}
{'OrderID': '10250', 'CustomerID': '7', 'OrderDate': '10/02/2020'}
パンダを使用してCSVファイルを読み取る

Pandasを使用するには、最初にPandasライブラリをインストールする必要があります。

インストールするには、次のコマンドを実行します:pip3 install pandas

import pandas

orders = pandas.read_csv('orders.csv')
print(orders)

orders.csvの出力:

OrderID  CustomerID   OrderDate
10248           4     10/02/2020
10249           2     10/02/2020
10250           7     10/02/2020

Pandasを使用したPython書き込みCSV

from pandas import DataFrame
import pandas as pd

order = pd.DataFrame({'OrderID': ['10251', '10252', '10253'],
                   'CustomerID': ['5', '1', '8'],
                   'OrderDate': ['11/02/2020', '11/02/2020', '11/02/2020']})
order.to_csv('newOrders.csv', index=False)

newOrders.csvの出力:

OrderID,CustomerID,OrderDate
10251,5,11/02/2020
10252,1,11/02/2020
10253,8,11/02/2020
既存のCSVファイルにデータを追加

csvファイルに書き込むときのデフォルトモードは'w'です 。既存のCSVファイルにデータを追加する場合は、追加モードを使用する必要があります。 mode='a'

from pandas import DataFrame
import pandas as pd

order = pd.DataFrame({'OrderID': ['10254'],
                   'CustomerID': ['3'],
                   'OrderDate': ['11/02/2020']})
order.to_csv('newOrders.csv', mode='a', index=False, header=False)

newOrders.csvの出力:

OrderID,CustomerID,OrderDate
10251,5,11/02/2020
10252,1,11/02/2020
10253,8,11/02/2020
10254,3,11/02/2020

CSVモジュールを使用したPython書き込みCSV

N.B.最初の行は列ヘッダーとして使用されます

import csv
with open('orders.csv', 'w', newline='') as file:
    order = csv.writer(file)
    order.writerow(['OrderID', 'CustomerID', 'OrderDate'])
    order.writerow(['10251', '6', '11/02/2020'])
    order.writerow(['10252', '9', '11/02/2020'])
    order.writerow(['10253', '5', '11/02/2020'])

orders.csvの出力:

OrderID,CustomerID,OrderDate
10251,6,11/02/2020
10252,9,11/02/2020
10253,5,11/02/2020

csvモジュールを使用して既存のcsvファイルに追加する場合は、'a'を渡す必要があります。 open()へのパラメータ 方法。また、「見出し」をスキップする必要があります。

例:

with open('orders.csv', 'a', newline='') as file:
    order = csv.writer(file)
    order.writerow(['10251', '6', '11/02/2020'])

DictWriterを使用してCSVファイルを書き込む

DictWriterを使用することもできます csvのメソッド CSVファイルを作成および書き込むクラス。

import csv
with open('orders.csv', 'w', newline='') as file:
    fieldnames = ['OrderID', 'CustomerID', 'OrderDate']
    order = csv.DictWriter(file, fieldnames=fieldnames)
    order.writeheader()
    order.writerow({'OrderID': '10251', 'CustomerID': 7, 'OrderDate': '11/02/2020'})
    order.writerow({'OrderID': '10252', 'CustomerID': 3, 'OrderDate': '11/02/2020'})
    order.writerow({'OrderID': '10253', 'CustomerID': 1, 'OrderDate': '11/02/2020'})

orders.csvの出力:

OrderID,CustomerID,OrderDate
10251,7,11/02/2020
10252,3,11/02/2020
10253,1,11/02/2020

  1. Pythonを使用してPDFをCSVに変換する

    Pythonは、パッケージの膨大なライブラリでよく知られています。ライブラリの助けを借りて、PDFをCSVファイルに変換する方法を見ていきます。 CSVファイルは、一連の行と列とともにフレーム化されたデータのコレクションに他なりません。 PythonライブラリにはPDFをCSVに変換するためのさまざまなパッケージがありますが、Tabula-pyモジュールを使用します 。 tabula-pyの大部分はJavaで記述されており、最初にPDFドキュメントを読み取り、PythonDataFrameをJSONオブジェクトに変換します。 tabula-pyを使用するには、システムにJavaがプリインスト

  2. Pythonopenpyxlモジュールを使用してExcelファイルの読み取りと書き込み

    Pythonは、Excelファイルを操作するためのopenpyxlモジュールを提供します。 このモジュールでは、Excelファイルの作成方法、書き込み方法、読み取り方法などを実装できます。 openpyxlモジュールをインストールするには、コマンドプロンプトでこのコマンドを記述できます pip install openpyxl シートにタイトル名を付けたい場合 サンプルコード import openpyxl my_wb = openpyxl.Workbook() my_sheet = my_wb.active my_sheet_title = my_sheet.title print