python存储数据
存储数据的方式两种存储数据方式的区别csv格式文件Excel格式文件csv文件的写入csv文件的读取Excel基本概念Excel文件的写入Excel文件的读取存储数据的方式
•常用的存储数据的方式有两种——存储成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(Excel版本的文件格式是xls,Excel及之后的版本的文件格式就是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 csvcsv_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 openpyxlwb = 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 openpyxlwb = 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.valueprint(A1_value)
运行结果:
总结:
•灵活使用各种方法,文件存储读取搭配使用
•注意前后编码格式,一定要相同
•需要学习openpyxl模块的其他方法查找官方文档,openpyxl模块的官方文档:openpyxl模块官方文档