栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬虫学习38

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫学习38

python爬虫学习38

目录
    • python爬虫学习38
      • 数据存储片——CSV文件储存
        • 1. 写入
          • writerow
          • delimiter 分隔符
          • writerows
          • Dictwriter 写入字典
          • 写入中文的编码问题
          • pandas 写入

数据存储片——CSV文件储存

CSV,全称Comma-Separated-Values(逗号分隔值/字符分割值),其文件格式以纯文本格式存储表格数据。

CSV文件是一个字符序列,可以由任意数目的纪录组成,格条记录以某种换行符分隔开。每条记录都由若干字段组成,字段间的分隔符是其他字符或者字符串,最常见的是逗号或者制表符。所有记录都有完全相同的字段序列,相当于一个结构化的纯文本形式。

与Excel的不同之处在于,CSV中不能包含数值、公式、格式等信息,他只是以特定字符为分隔符的纯文本,结构简单清晰。

1. 写入

直接调用csv库进行相关操作:

writerow
# CSV的写入
import csv

with open('data_csv.csv', 'w+') as file:
    writer = csv.writer(file)
    # 写入一行
    writer.writerow(['id', 'name', 'age'])
    writer.writerow(['101', 'Bob', '6'])
    writer.writerow(['102', 'Jenny', '8'])
    writer.writerow(['103', 'Mask', '7'])
    print('写入成功!')

运行结果:可以看到当前目录下出现了一个名为data_csv.csv的文件,打开之后内容如下

使用记事本打开该文件:

发现每一条记录由逗号分隔开,可以调用delimiter字段修改分隔字符:

delimiter 分隔符
import csv

with open('data_csv_2.csv', 'w+') as file:
    option_csv = csv.writer(file, delimiter=' ')
    option_csv.writerow(['id', 'name', 'age'])
    option_csv.writerow(['101', 'Bob', '6'])
    option_csv.writerow(['102', 'Jenny', '8'])
    option_csv.writerow(['103', 'Mask', '7'])
    print('写入成功!')

运行结果:

写入的时候也可以使用writerows传入二维数组进行写入:

writerows
import csv

with open('data_csv_3.csv', 'w+') as file:
    option = csv.writer(file)
    option.writerow(['id', 'name', 'age'])
    option.writerows([['101', 'Bob', '6'], ['102', 'Jenny', '8'], ['103', 'Mask', '7']])
    print('写入成功!')

运行结果:

在使用爬虫时,我们爬取到的都是结构化数据,一般都会用字典表示这种数据,csv库也提供了字典的写入方法:

Dictwriter 写入字典
import csv
# 字典写入
with open('data_csv_4.csv', 'w+') as file:
    fieldnames = ['id', 'name', 'age']
    option = csv.DictWriter(file, fieldnames=fieldnames)
    option.writeheader()
    option.writerow({"id": "101", "name": "Bob", "age": "6"})
    option.writerow({"id": "102", "name": "Jenny", "age": "8"})
    option.writerow({"id": "103", "name": "Mask", "age": "7"})
    print('写入成功!')

运行结果:

根据我们已经学过的知识,如何在已有的data_csv_4.csv的基础上追加信息呢?大家可以尝试一下,这里就不再进行演示了。

值得注意的是,若是想在csv格式文件中写入中文内容,就会遇到编码问题,这时我们就需要调用encoding字段:

写入中文的编码问题
import csv
# 字典写入中文
with open('data_csv_5.csv', 'w+', encoding='utf-8') as file:
    fieldnames = ['id', 'name', 'age']
    option = csv.DictWriter(file, fieldnames=fieldnames)
    option.writeheader()
    option.writerow({"id": "101", "name": "老王", "age": "6"})
    option.writerow({"id": "102", "name": "小李", "age": "8"})
    option.writerow({"id": "103", "name": "大强", "age": "7"})
    print('写入成功!')

运行结果:

同时,我们也可以与pandas 库产生联动:

pandas 写入

pandas不是py的内置库,需要安装

# 10M 挺大的大家嫌慢可以挂个镜像
pip install pandas 
# 调用 pandas
import pandas as pd

data = [
    {"id": "101", "name": "老王", "age": "6"},
    {"id": "102", "name": "小李", "age": "8"},
    {"id": "103", "name": "大强", "age": "7"}
]
dataframe = pd.DataFrame(data)
dataframe.to_csv('data_csv_6.csv', index=False)
print('写入成功!')

运行结果:

未完待续…

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875316.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号