- 订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+
python项目实战
Python编程基础教程系列(零基础小白搬砖逆袭)
- 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,可报销(名额有限,先到先得)。
即将转为付费专栏,更多详细请看,五一或有优惠活动哦。
关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明
- 作者:爱吃饼干的小白鼠。Python领域优质创作者,2022年度博客新星top100入围,荣获多家平台专家称号。
最近更新
〖Python网络爬虫实战⑱〗- 数据存储之TXT纯文本
🌟上节回顾
上一节我们介绍了 Python 将我们获取到的数据保存为 TXT 文件的方法,这种方法简单易用,操作高效,是一种最基本的保存数据的方法。保存TXT文件是非常简单的。我们今天准备来介绍关于CSV文件的保存的相关知识。
⭐️CSV 文件存储
CSV是一种常用的文件格式,用于存储纯文本数据,并且每行数据都使用逗号分隔。CSV文件通常在不同的应用程序之间进行数据交换,也可以在文本编辑器中用于存储和编辑数据。
CSV文件的格式非常简单,每行数据都由逗号分隔,并且每行数据都包含标题行和数据行。标题行通常包含文件名、文件类型、记录的开始和结束位置等信息。数据行包含实际的数据数据,这些数据可以是任何类型的文本数据,例如字符串、数字、日期等。
🌟数据写入
这里先看一个最简单的例子:
import csv
with open('data.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow(['id', 'name', 'age'])
在上述代码中,csv
模块的 writerow
方法用于将一行数据写入 CSV 文件。在打开文件时,使用 'w'
模式打开文件,表示以写入模式打开文件,如果文件不存在,则会创建文件。如果文件已经存在,则会将文件内容清空。
在 with
语句块中,创建一个 csv.writer
对象,并将其绑定到文件对象 f
上。然后,调用 writerow
方法将标题行写入文件。
在实际使用中,可以将数据写入 CSV 文件,每行数据之间用逗号分隔。我们运行效果如下:
✨字典写入
但是一般情况下,爬虫爬取的都是结构化数据,我们一般会用字典来表示。在 csv 库中也提供了字典的写入方式,示例如下:
import csv
with open('data.csv', 'w') as f:
writer = csv.DictWriter(f, fieldnames=['id', 'name', 'age'])
writer.writeheader()
writer.writerow({'id': '1', 'name': 'Tom', 'age': '18'})
在上述代码中,使用 csv.DictWriter
类创建一个 CSV 文件的写入器。fieldnames
参数指定了 CSV 文件中每个字段的名称。然后,调用 writeheader
方法写入标题行。最后,调用 writerow
方法将数据写入文件。这样就可以完成字典到 CSV 文件的写入了。
✨追加
如果想追加写入的话,可以修改文件的打开模式,即将 open 函数的第二个参数改成 a,代码如下:
import csv
with open('data.csv', 'a') as f:
writer = csv.writer(f)
writer.writerow({'id': '1', 'name': 'Tom', 'age': '18'})
这样在上面的基础上再执行这段代码,程序会在原来的csv文件的基础上,追加内容,这里和之前说的TXT的追加模式一样。
这里要注意,如果要写入中文内容的话,可能会遇到字符编码的问题,此时需要给 open 参数指定编码格式。
f = open('data.csv',mode='w',encoding='utf-8')
大家可以看到,我们这里encoding
参数指定了文件的编码方式,这里是 UTF-8。
🌟读取
✨csv
我们同样可以使用 csv 库来读取 CSV 文件。例如,将刚才写入的文件内容读取出来,相关代码如下:
import csv
with open('data.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
print(row)
运行结果:
['id', 'name', 'age']
['1', 'Tom', '18']
这个代码段打开名为 data.csv
的文件,读取它的内容并将每一行打印出来。这里我们构造的是 reader 对象,通过遍历输出了每行的内容,每一行都是一个列表形式。
✨pandas
如果大家接触过 pandas 的话,我们还可以利用 read_csv 方法将数据从 CSV 中读取出来,例如:
import pandas as pd
df = pd.read_csv('data.csv')
print(df)
我们这个代码段导入名为 data.csv
的 CSV 文件,并将其存储在名为 df
的 Pandas DataFrame 中。然后,使用 print(df)
语句打印出 DataFrame 的内容。
🌟总结
我们了解了 CSV 文件的写入和读取方式。这也是一种常用的数据存储方式,需要熟练掌握。但是,CSV文件的使用也存在一些限制和局限性。例如,CSV文件只能存储纯文本数据,不能存储二进制数据或者复杂的数据结构。此外,CSV文件的格式比较固定,不能自定义格式或者添加数据分隔符等。
为了解决这些问题,我们需要寻找更好的数据存储方式。我们一般会使用“JSON”的数据存储格式,它可以存储多种类型的数据,并且支持自定义格式和数据分隔符等。后面我们也会讲到JSON数据的保存。