ホームページ  >  記事  >  バックエンド開発  >  Python知識まとめ:csvファイルの書き込みと読み込み

Python知識まとめ:csvファイルの書き込みと読み込み

WBOY
WBOY転載
2022-04-02 12:53:102906ブラウズ

この記事では、python に関する関連知識を提供します。主に csv ファイルの書き込みと読み取りに関連する問題を紹介します。CSV は一般的に使用されるテキスト形式で、数値や文字などのテーブル データを保存するために使用されます。皆様のお役に立てれば幸いです。

Python知識まとめ:csvファイルの書き込みと読み込み

推奨学習: python チュートリアル

CSV (カンマ区切り値)、つまりカンマ区切り値 (別名カンマ区切り値)区切り文字はカンマ以外でもよいため、文字で区切られた値として、数値や文字を含む表形式のデータを格納するためによく使用されるテキスト形式です。多くのプログラムは、データを処理するときに csv 形式のファイルに遭遇します。 Python には、csv ファイルの読み取りを処理するために特別に使用される csv モジュールが付属しています。

CSV 書き込み

ライター オブジェクトを作成することで、主に 2 つのメソッドが使用されます。 1 つは writerow で、行を書き込みます。もう 1 つは、複数行を書き込む writerows です。

DictWriter を使用して、辞書を使用してデータを書き込みます。

最初の書き込み方法 (ライター オブジェクトの作成による)

について話しましょう。最初の書き込み方法: ライター オブジェクトを作成して書き込みます (一度に 1 行ずつ書き込みます)
手順 : 1. データとテーブル ヘッダーの作成 2. ライター オブジェクトの作成 3. ヘッダーの書き込み 4. トラバース

import csv

person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8') as file_obj:
    # 1:创建writer对象
    writer = csv.writer(file_obj)
    # 2:写表头
    writer.writerow(header)
    # 3:遍历列表,将每一行的数据写入csv
    for p in person:
        writer.writerow(p)
書き込み後、現在のディレクトリに person.csv ファイルが表示されますので、右クリックしてエクスプローラーで表示 person を開きます。 csv で表示

Python知識まとめ:csvファイルの書き込みと読み込み
Python知識まとめ:csvファイルの書き込みと読み込み
Python知識まとめ:csvファイルの書き込みと読み込み 開いてみると、書き込まれたデータが途中で改行されていることがわかります。

驚くべき : では、この問題はどうやって解決すればいいのでしょうか?
ハッカー : とても簡単です データを書き込むときにパラメータを追加するだけです
newline='' 順番に改行を防ぐために と書きます。 修正コードは以下のとおりです。

import csv# 数据person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 创建对象
    writer = csv.writer(file_obj)
    # 写表头
    writer.writerow(header)
    # 遍历,将每一行的数据写入csv
    for p in person:
        writer.writerow(p)

Python知識まとめ:csvファイルの書き込みと読み込み ✅ライターオブジェクトを作成する(複数行を一度に書く)

手順 : 1. データとヘッダーの作成 2. Writer オブジェクトの作成 3. ヘッダーの書き込み 4. writerows に処理したいデータを渡す

import csv# 数据person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 创建对象
    writer = csv.writer(file_obj)
    # 写表头
    writer.writerow(header)
    # 3.写入数据(一次性写入多行)
    writer.writerows(person)
書き込み結果は次のようになります。

Python知識まとめ:csvファイルの書き込みと読み込み

2 番目の書き込み方法 (DictWriter を使用して辞書を使用してデータを書き込む)

注意事項 : 辞書を使用して書き込む場合、渡されるデータ形式に注意してください辞書である必要があります 辞書でない場合は、エラーが報告されます

AttributeError: 'tuple' object has no attribute 'keys'

ステップ 1 .データとヘッダーを作成します ( データは辞書形式である必要があります ) 2. DictWriter オブジェクトを作成します 3. ヘッダーを書き込みます 4. データを書き込みます

import csv# 数据person = [
    {'name': 'xxx', 'age': 18, 'height': 193},
    {'name': 'yyy', 'age': 18, 'height': 182},
    {'name': 'zzz', 'age': 19, 'height': 185},]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 1.创建DicetWriter对象
    dictWriter = csv.DictWriter(file_obj, header)
    # 2.写表头
    dictWriter.writeheader()
    # 3.写入数据(一次性写入多行)
    dictWriter.writerows(person)

Python知識まとめ:csvファイルの書き込みと読み込み

Reading csv

Reading through Reader()
import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.创建reader对象
    reader = csv.reader(file_obj)
    print(reader)

直接印刷すると、csv.reader オブジェクトが返されます。この場合、リスト

修正されたコードは次のとおりです:

import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.创建reader对象
    reader = csv.reader(file_obj)
    # 2.遍历进行读取数据
    for r in reader:
        print(r)
読み取り結果は次のとおりです。

['name', 'age', 'height']['xxx', '18', '193']['yyy', '18', '182']['zzz', '19', '185']
リスト内の特定の値を出力したい場合は、インデックス印刷を使用できます。

print(r[0])
name
xxx
yyy
zzz

Read through dictreader()
import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.创建reader对象
    dictReader = csv.DictReader(file_obj)
    # 2.遍历进行读取数据
    for r in dictReader:
        print(r)

戻り結果は次のとおりです。

OrderedDict([('name', 'xxx'), ('age', '18'), ('height', '193')])OrderedDict([('name', 'yyy'), ('age', '18'), ('height', '182')])OrderedDict([('name', 'zzz'), ('age', '19'), ('height', '185')])
このとき、特定の値を取得したい場合は、値を見つけるためのキーを指定する必要があります

print(r['name'])
xxx
yyy
zzz
上記は、Python の基本チュートリアルでの CSV ファイルの書き込みと読み取りです。改善に関する提案がある場合は、コメント領域にメッセージを残してください。ああ~


推奨学習:

Python チュートリアル #

以上がPython知識まとめ:csvファイルの書き込みと読み込みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。