Python を使用した CSV ファイルの操作は便利で高速です

コンセプト

CSV は、表形式のデータをプレーン テキストで保存する、カンマ区切り値または文字区切り値ファイルです。

CSV ファイルはテキスト ファイルとして開くことも、EXCEL に変換することもできます (EXCEL を直接使用することもできますが、いくつかの問題が発生する可能性があります)。したがって、CSV ファイルを介してプログラム間でテーブル データを転送する方が適しています。

アプリケーションシナリオ

データ分析(データベースのデータを製品に取り込む)やクローラのデータを保存する必要がある場合、スクリプトの動作ログを記録するためにCSVファイルを使用すると便利です。

具体操作

以下は、Python を介して CSV ファイルを読み書きする方法を示しています。

import csv

with open('test.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(['id', 'name', 'phone'])
    writer.writerow(['01', 'zhangsan', '13600000001'])
    writer.writerow(['02', 'lisi', '13600000002'])
    writer.writerow(['03', 'wangwu', '13600000003'])

メモ帳で開くと以下の内容が表示されますが、デフォルトではデータの各行がカンマで区切られています(このカンマ区切りの値を再度理解すると分かります)。

写真

EXCELで開くと以下のようなデータになります。

写真

各行の下のスペースを削除し、newline パラメータを追加しましょう。

import csv

with open('test.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['id', 'name', 'phone'])
    writer.writerow(['01', 'zhangsan', '13600000001'])
    writer.writerow(['02', 'lisi', '13600000002'])
    writer.writerow(['03', 'wangwu', '13600000003'])

見てください、スペースがありません!

写真

他の記号を使用してデータ間のカンマを置き換える場合は、delimiterパラメーターを設定します。

import csv

with open('test.csv', 'w') as f:
    writer = csv.writer(f, delimiter = '-')
    writer.writerow(['id', 'name', 'phone'])
    writer.writerow(['01', 'zhangsan', '13600000001'])
    writer.writerow(['02', 'lisi', '13600000002'])
    writer.writerow(['03', 'wangwu', '13600000003'])

写真

これを実装する別の方法もあります。最初にテーブル ヘッダーを書き込み、次に writerows を使用してデータを挿入します。

import csv

with open('test.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(['id', 'name', 'phone'])
    writer.writerows([['01', 'zhangsan', '13600000004'],['02', 'lisi', '13600000005'],['03', 'wangwu', '13600000006']])

写真

または、ヘッダーを抽出して辞書に書き込みます。

with open('test.csv', 'w') as f:
    header = ['id', 'name', 'phone']
    writer = csv.DictWriter(f, fieldnames=header)
    writer.writeheader()
    writer.writerow({'id': '01', 'name': 'zhangsan', 'phone': '13600000007'})
    writer.writerow({'id': '02', 'name': 'lisi', 'phone': '13600000008'})
    writer.writerow({'id': '03', 'name': 'wangwu', 'phone': '13600000009'})

ここに画像の説明を挿入します

for ループを使用してデータを順番に書き込むこともできます。

import csv
data = [
    ("zhangsan",'13600000001'),
    ("lisi",'13600000002'),
    ("wangwu",'13600000003')
]
with open('test.csv','w') as f:
    writer = csv.writer(f)
    for i in data:
        writer.writerow(i)

中国語データを書き込む必要がある場合は、エンコード エラーを避けるために、ファイル操作中にエンコード形式を追加します。

import csv

with open('test.csv', 'w', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['id', 'name', 'phone'])
    writer.writerow(['01', '张三', '13600000001'])
    writer.writerow(['02', '李四', '13600000002'])
    writer.writerow(['03', '王五', '13600000003'])

ファイル読み取り操作:

import csv
with open('test.csv','r',encoding = 'utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それほど価値のあるものではありませんが、使用できる場合は、直接受け取ることができます。

ここに画像の説明を挿入します

この情報は、[ソフトウェア テスト] の友人にとって最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。また、皆さんのお役に立てれば幸いです。   

おすすめ

転載: blog.csdn.net/qq_48811377/article/details/132807991