一、 存储数据的正确方式
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