爬虫類のCSVファイルストレージ
ほんの少し
CSVは、すべてComma-Separated Valueと呼ばれ、中国語ではカンマ区切り値または文字区切り値と呼ぶことができ、ファイルは純粋なテキスト形式でテーブルデータを格納します.このファイルは文字列で、任意の数のレコードからなり、レコード間を改行で区切ることができます.各レコードはフィールドで構成され、フィールド間の区切り記号は他の文字または文字列であり、最も一般的なのはカンマまたはタブです.ただし、すべてのレコードには、構造化テーブルの純粋なテキスト形式に相当する完全に同じフィールドシーケンスがあります.Excelファイルよりも簡潔で、XLSテキストはスプレッドシートで、テキスト、数値、式、フォーマットなどの内容が含まれていますが、CSVにはこれらの内容が含まれていません.特定の文字で区切られた純粋なテキストで、構造が簡単ではっきりしています.そのため、CSVでデータを保存するのが便利な場合があります.
デュアルライト
1基本的な使い方
1.1コード
1.2結果
2列と列の区切りを変更する
2.1コード
2.2結果
3複数行同時書き込み
3.1コード
3.2結果
4辞書書き込み方式
4.1点睛
一般的には、爬虫類が這い出すのは構造化データであり、辞書で表すのが一般的です.csvライブラリにも辞書の書き込み方法が提供されています.
4.2コード
4.3結果
4.4説明
ここではまず3つのフィールドを定義し、fieldnamesで表し、DictWriterに渡して辞書書き込みオブジェクトを初期化し、writeheader()メソッドを呼び出してヘッダ情報を先に書き込み、writerow()メソッドを呼び出して対応する辞書に入力すればよい.
5追加方式書き込み
5.1点眼
書き込みを追加したい場合は、open()関数の2番目のパラメータをaに変更するファイルの開きモードを変更できます.
5.2コード
5.3結果
6中国語の書き込み
6.1点眼
中国語の内容を書き込む場合、文字符号化の問題が発生する可能性があります.open()パラメータに符号化フォーマットを指定する必要があります.
6.2コード
6.3結果
さんよみとり
1コード
2結果
CSVは、すべてComma-Separated Valueと呼ばれ、中国語ではカンマ区切り値または文字区切り値と呼ぶことができ、ファイルは純粋なテキスト形式でテーブルデータを格納します.このファイルは文字列で、任意の数のレコードからなり、レコード間を改行で区切ることができます.各レコードはフィールドで構成され、フィールド間の区切り記号は他の文字または文字列であり、最も一般的なのはカンマまたはタブです.ただし、すべてのレコードには、構造化テーブルの純粋なテキスト形式に相当する完全に同じフィールドシーケンスがあります.Excelファイルよりも簡潔で、XLSテキストはスプレッドシートで、テキスト、数値、式、フォーマットなどの内容が含まれていますが、CSVにはこれらの内容が含まれていません.特定の文字で区切られた純粋なテキストで、構造が簡単ではっきりしています.そのため、CSVでデータを保存するのが便利な場合があります.
デュアルライト
1基本的な使い方
1.1コード
import csv
# , data.csv , w( ),newline ,
# , csv writer() ,
# , writerow() 。
with open('data.csv', 'w',newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['id', 'name', 'age'])
writer.writerow(['10001', 'Mike', 20])
writer.writerow(['10002', 'Bob', 22])
writer.writerow(['10003', 'Jordan', 21])
1.2結果
id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21
2列と列の区切りを変更する
2.1コード
import csv
with open('data.csv', 'w',newline='') as csvfile:
# delimiter ,
writer = csv.writer(csvfile, delimiter=' ')
writer.writerow(['id', 'name', 'age'])
writer.writerow(['10001', 'Mike', 20])
writer.writerow(['10002', 'Bob', 22])
writer.writerow(['10003', 'Jordan', 21])
2.2結果
id name age
10001 Mike 20
10002 Bob 22
10003 Jordan 21
3複数行同時書き込み
3.1コード
import csv
with open('data.csv', 'w',newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['id', 'name', 'age'])
# writerows() ,
writer.writerows([['10001', 'Mike', 20], ['10002', 'Bob', 22], ['10003', 'Jordan', 21]])
3.2結果
id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21
4辞書書き込み方式
4.1点睛
一般的には、爬虫類が這い出すのは構造化データであり、辞書で表すのが一般的です.csvライブラリにも辞書の書き込み方法が提供されています.
4.2コード
import csv
with open('data.csv', 'w',newline='') as csvfile:
fieldnames = ['id', 'name', 'age']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'id': '10001', 'name': 'Mike', 'age': 20})
writer.writerow({'id': '10002', 'name': 'Bob', 'age': 22})
writer.writerow({'id': '10003', 'name': 'Jordan', 'age': 21})
4.3結果
id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21
4.4説明
ここではまず3つのフィールドを定義し、fieldnamesで表し、DictWriterに渡して辞書書き込みオブジェクトを初期化し、writeheader()メソッドを呼び出してヘッダ情報を先に書き込み、writerow()メソッドを呼び出して対応する辞書に入力すればよい.
5追加方式書き込み
5.1点眼
書き込みを追加したい場合は、open()関数の2番目のパラメータをaに変更するファイルの開きモードを変更できます.
5.2コード
import csv
with open('data.csv', 'a',newline='') as csvfile:
fieldnames = ['id', 'name', 'age']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writerow({'id': '10004', 'name': 'Durant', 'age': 22})
5.3結果
id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21
10004,Durant,22
6中国語の書き込み
6.1点眼
中国語の内容を書き込む場合、文字符号化の問題が発生する可能性があります.open()パラメータに符号化フォーマットを指定する必要があります.
6.2コード
import csv
with open('data.csv', 'a', encoding='utf-8',newline='') as csvfile:
fieldnames = ['id', 'name', 'age']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writerow({'id': '10005', 'name': ' ', 'age': 22})
6.3結果
id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21
10004,Durant,22
10005, ,22
さんよみとり
1コード
import csv
# Reader , , 。
# , CSV , 。
with open('data.csv', 'r', encoding='utf-8',newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
2結果
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/5_1_3.py
['id', 'name', 'age']
['10001', 'Mike', '20']
['10002', 'Bob', '22']
['10003', 'Jordan', '21']
['10004', 'Durant', '22']
['10005', ' ', '22']