IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python爬虫学习38 -> 正文阅读

[人工智能]python爬虫学习38

python爬虫学习38

数据存储片——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('写入成功!')

运行结果:

在这里插入图片描述

未完待续…

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:35:23  更:2022-05-15 11:35:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:56:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码