第10课:存储爬取的信息

一、 存储数据的正确方式

1. 常用的存储数据的方式有两种——存储成csv格式文件、存储成Excel文件(不是复制黏贴的那种)。

2. “csv”是什么,和Excel文件有什么区别?

其实,csv也是一种字符串文件的格式,它组织数据的语法就是在字符串之间加分隔符——行与行之间是加换行符,同行字符之间是加逗号分隔。它可以用任意的文本编辑器打开(如记事本),也可以用Excel打开,还可以通过Excel把文件另存为csv格式(因为Excel支持csv格式文件)。

运行以下代码,查看本地文件内容:

file=open('test.csv','a+')

#创建test.csv文件,以追加的读写模式

file.write('美国队长,钢铁侠,蜘蛛侠')

#写入test.csv文件

file.close()

#关闭文件

3. 存储成csv格式文件和存储成Excel文件,这两种不同的存储方式需要引用的模块也是不同的。操作csv文件我们需要借助csv模块;操作Excel文件则需要借助openpyxl模块。

二、CSV文件存储

1. csv写入我们可以直接用open函数来写,为什么现在还要先引用csv模块?

答案:直接运用别人写好的模块,比我们使用open()函数来读写,语法更简洁,功能更强大。

2.  导入csv模块,创建一个新的csv文件,命名为“demo.csv”

import csv

#引用csv模块。

csv_file=open('demo.csv','w',newline='',encoding='utf-8')

#创建csv文件,我们要先调用open()函数,传入参数:文件名“demo.csv”、写入模式“w”、newline=''、encoding='utf-8'。

“w”就是writer,即文件写入模式,它会以覆盖原内容的形式写入新添加的内容。

加newline=' '参数的原因是,可以避免csv文件出现两倍的行距(就是能避免表格的行与行之间出现空白行)。加encoding='utf-8',可以避免编码问题导致的报错或乱码。

3. 创建完csv文件后,我们要借助csv.writer()函数来建立一个writer对象。

import csv

引用csv模块。

csv_file=open('demo.csv','w',newline='',encoding='utf-8')

#调用open()函数打开csv文件,传入参数:文件名“demo.csv”、写入模式“w”、newline=''、encoding='utf-8'。

writer=csv.writer(csv_file)

# 用csv.writer()函数创建一个writer对象。

4.那怎么往csv文件里写入新的内容呢?——调用writer对象的writerow()方法。

writer.writerow(['电影','豆瓣评分'])

#借助writerow()函数可以在csv文件里写入一行文字 "电影"和“豆瓣评分”。

5. 试着再写入两部电影的名字和其对应的豆瓣评分,最后关闭文件,就完成csv文件的写入了。

import csv

#引用csv模块。

csv_file=open('demo.csv','w',newline='',encoding='utf-8')

#调用open()函数打开csv文件,传入参数:文件名“demo.csv”、写入模式“w”、newline=''、encoding='utf-8'。

writer=csv.writer(csv_file)

# 用csv.writer()函数创建一个writer对象。

writer.writerow(['电影','豆瓣评分'])#调用writer对象的writerow()方法

writer.writerow(['银河护卫队','8.0'])#在csv文件里写入一行文字 “银河护卫队”和“8.0”。

writer.writerow(['复仇者联盟','8.1'])#在csv文件里写入一行文字 “复仇者联盟”和“8.1”。

csv_file.close()#写入完成后,关闭文件就大功告成啦!

6. 怎么读取csv文件的数据?

import csv

 #导入csv模块

csv_file=open('demo.csv','r',newline='',encoding='utf-8')

#用open()打开“demo.csv”文件,'r'是read读取模式,newline=''是避免出现两倍行距。encoding='utf-8'能避免编码问题导致的报错或乱码。

reader=csv.reader(csv_file)

#用csv.reader()函数创建一个reader对象。

for row in reader:

    print(row)

#用for循环遍历reader对象的每一行。打印row,就能读取出“demo.csv”文件里的内容。

csv_file.close()

#关闭文件

7. csv模块本身还有很多函数和方法,附上csv模块官方文档链接:

https://yiyibooks.cn/xx/python_352/library/csv.html#module-csv

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容