存储数据的方式

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

两种存储数据方式的区别

csv格式文件

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

file = open('test.csv', 'a+')
# 创建test.csv文件,以追加的读写模式
file.write('喜羊羊,美羊羊,沸羊羊,懒羊羊')
# 写入test.csv文件
file.close()
# 关闭文件

运行结果:
       •当前目录下会出现一个csv文件,
在这里插入图片描述
       •找到文件目录,用记事本的方式打开test.csv文件,会出现以下文件内容
在这里插入图片描述
       •也可以直接打开文件(Excel表格形式)
在这里插入图片描述

csv文件总结:
       •csv文件里的逗号可以充当分隔同行字符串的作用
       •如果不加分隔符的话,数据都堆在一起,会显得杂乱无章,不方便我们之后提取和查找。是一种让数据变得有规律的组织方式
       •用csv格式存储数据,读写比较方便,易于实现,文件也会比Excel文件小。但csv文件缺少Excel文件本身的很多功能,如不能嵌入图像和图表,不能生成公式等等

Excel格式文件

       •Excel文件(电子表格),有专门保存文件的格式,即xls和xlsx(Excel2003版本的文件格式是xls,Excel2007及之后的版本的文件格式就是xlsx)

csv文件的写入

       •操作csv文件我们需要借助csv模块,python自带csv模块,不需要我们使用pip安装

       •csv写入我们可以直接用open函数来写,为什么现在还要先引用csv模块?
              •答案:直接运用别人写好的模块,比我们使用open()函数来读写,语法更简洁,功能更强大
       •open操作模式表:
在这里插入图片描述

代码测试:

import csv

# 引用csv模块。
csv_file = open('movie.csv', 'w', newline='', encoding='gbk')
# 调用open()函数打开csv文件,传入参数:文件名“demo.csv”、写入模式“w”、newline=''、encoding='gbk'
writer = csv.writer(csv_file)
# 用csv.writer()函数创建一个writer对象。
writer.writerow(['电影', '豆瓣评分'])
# 调用writer对象的writerow()方法,可以在csv文件里写入一行文字 “电影”和“豆瓣评分”。
writer.writerow(['喜羊羊与灰太狼', '9.9'])
# 在csv文件里写入一行文字 “喜羊羊与灰太狼”和“9.9”
writer.writerow(['熊出没之夺宝熊兵', '10.0'])
# 在csv文件里写入一行文字 “熊出没之夺宝熊兵”和“10.0”
csv_file.close()
# 关闭文件

两种不同文件格式的结果:
在这里插入图片描述

在这里插入图片描述
       •当文件内容出现乱码时,可将open()函数中的encoding='gbk’改为encoding='utf-8’
       •newline=’ '的作用:避免出现两倍行距

csv文件的读取

       •操作方法:用csv.reader()函数创建一个reader对象进行操作
代码测试:

import csv

csv_file = open('movie.csv', 'r', newline='', encoding='gbk')#编码方式与写入文件时相同
reader = csv.reader(csv_file)
for row in reader:
    print(row)

运行结果:
在这里插入图片描述
总结:
       •不同文件使用不同的操作模式
       •文件写入编码一定要于文件读取编码相同</code.
       •csv模块本身还有很多函数和方法,读者可自行学习,附上csv模块官方文档链接:csv模块官方文档

Excel基本概念

在这里插入图片描述
       •一个Excel文档也称为一个工作簿(workbook),每个工作簿里可以有多个工作表(worksheet),当前打开的工作表又叫活动表
       •每个工作表里有行和列,特定的行与列相交的方格称为单元格(cell)。如上图第A列和第1行相交的方格我们可以直接表示为A1单元格

Excel文件的写入

       •操作Excel文件需要借助openpyxl模块,python不自带此模块,需要我们自行安装
       •安装模块可参考以下博客:pip换源安装python各种库(终极详细版)
代码测试:

import openpyxl

wb = openpyxl.Workbook()
# 利用openpyxl.Workbook()函数创建新的workbook(工作簿)对象,就是创建新的空的Excel文件
sheet = wb.active
# wb.active就是获取这个工作簿的活动表,通常就是第一个工作表
sheet.title = '电影工作表'
# 可以用.title给工作表重命名。现在第一个工作表的名称就会由原来默认的“sheet1”改为"电影工作表"
sheet['A1'] = '熊出没'
# 往A1的单元格中写入了'熊出没'
rows = [['我喜欢的', '名人名言'], ['但行好事', '莫问前程']]
for i in rows:
    sheet.append(i)
wb.save('Movie.xlsx')

文件内容:
在这里插入图片描述

Excel文件的读取

代码测试:

import openpyxl

wb = openpyxl.load_workbook('Movie.xlsx')
# 调用openpyxl.load_workbook()函数,打开“Movie.xlsx”文件
sheet = wb['电影工作表']
# 获取“MOvie.xlsx”工作簿中名为“电影工作表”的工作表
sheetname = wb.sheetnames
# sheetnames是用来获取工作簿所有工作表的名字的。当你不知道工作簿到底有几个工作表,就可以把工作表的名字都打印出来,寻找自己所需要的工作表
print(sheetname)
A1_cell = sheet['A1']
# 把“电影工作表”工作表中A1单元格赋值给A1_cell,再利用单元格value属性,就能打印出A1单元格的值
A1_value = A1_cell.value
print(A1_value)

运行结果:
在这里插入图片描述
总结:
       •灵活使用各种方法,文件存储读取搭配使用
       •注意前后编码格式,一定要相同
       •需要学习openpyxl模块的其他方法查找官方文档,openpyxl模块的官方文档:openpyxl模块官方文档

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐