コンセプト
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)
最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それほど価値のあるものではありませんが、使用できる場合は、直接受け取ることができます。
この情報は、[ソフトウェア テスト] の友人にとって最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。また、皆さんのお役に立てれば幸いです。