csv文件、excel文件
day18-学习总结
一、csv文件读操作
-
什么是csv文件
csv文件叫逗号分隔文件,每一行内容是通过逗号来区分不同的列。
csv文件可以直接通过excel打开,以行列的形式保存和显示数据,但是相对excel文件,它只能存储数据,不能保存公式和函数。
-
csv文件读操作
1)打开文件
-
文件对象 = open()
操作文件
文件对象.close()
-
with open() as 文件对象:
操作文件
2)创建reader获取文件内容
- csv.reader(文件对象):获取文件内容返回一个迭代器,并且以列表为单位返回每一行内容。
- csv.DictReader(文件对象):获取文件内容返回一个迭代器,并且以字典为单位返回第2行开始的每一行内容(字典的键是每一行内容)。
练习:计算拉钩数据中,各个城市数据分析岗位的平均薪资。
from re import * with open('flies\lagou.csv',encoding='utf-8') as f: reader = csv.DictReader(f) # 处理数据 cities = {} for i in reader: c = i['city'] m = i['salary'] result=findall(r'(\d+)k-(\d+)k',m) if not result: continue start,end=result[0] moneys = cities.get(c, []) moneys.append((int(start) + int(end))/2) cities[c] = moneys # round(数字,小数位数) - 让数字保留指定位数的小数 for key in cities: print(key, round(sum(cities[key]) / len(cities[key]), 2))
-
二、csv文件写操作
-
文件写操作
1)打开文件
2)创建writer对象
- csv.writer(文件对象):创建writer对象,这个对象在写入数据的时候一行对应一个列表。
- csv.DictWriter(文件对象,键列表):创建writer对象,以字典为单位写入数据。
# a.以列表为单位写入一行内容 writer = csv.writer(f) # 一次写入一行内容 writer.writerow(['姓名','出生日期','性别','电话']) # 一次写入多行内容 writer.writerows([ ['小花','2000-3-24','女','1235'], ['张三','2001-02-26','男','51545'] ])
三、虚拟环境
-
系统环境
安装python就可以为计算机提供一个python的系统环境。
-
虚拟环境:程序员根据需要自己创建的环境
能够创建虚拟环境的前提:存在系统环境。
-
环境的作用
1)提供python变量
2)提供第三方库
虚拟环境的存在可以让第三方库根据类别或者项目分开管理。
-
使用虚拟环境的建议
1)工作的时候:一个项目一个虚拟环境,并且将虚拟环境直接放在项目。
2)学习的时候:一类项目一个虚拟环境,不同类别的虚拟环境全部放在一个地方。
-
怎么创建虚拟环境
1)使用pycharm创建;
2)使用指令创建;
四、excel文件读操作
-
认识excel文件
工作簿:一个excel文件就是一个工作簿。
工作表:一个工作簿中可以有多个工作表(至少一个)。
单元格:单元格是excel文件保存数据的基本单位。
行号和列号:可以确定单元格的位置。
-
获取excel文件内容
1)打开excel文件,创建工作簿对象
openpyxl.open(excel文件路径) workbook = openpyxl.load_workbook(excel文件路径)
2)获取工作表对象
工作簿对象.active 获取活跃表(选中的表) 工作簿对象[工作表名称] 获取指定名字对应的工作表 3)获取单元格
工作表对象.cell(行号,列号)
4)获取单元格内容
单元格对象.value
5)获取最大行号和最大列号(保存了数据的有效行和有效列)
工作表对象.max_row
工作表对象.max_column
五、文件读操作
注意:不管以什么样的方式对excel文件进行写操作,操作完成后必须要保存。
-
新建工作簿
1)新建工作簿对象
workbook = openpyxl.Workbook()
2)保存:工作簿对象.save(文件路径)
workbook.save('flies\student.xlsx')
实际上新建工作簿的时候先判断工作簿对应的文件是否已经存在,存在就不需要新建,不存在才新建。
# 方法一: try: workbook = openpyxl.open('flies\student2.xlsx') except: workbook = openpyxl.Workbook() workbook.save('flies\student2.xlsx') # 方法二: import os # os.path.exists(文件路径) - 判断指定文件是否存在,存在返回True,不存在返回None if os.path.exists('flies\student2.xlsx'): orkbook = openpyxl.open('flies\student2.xlsx') else: workbook = openpyxl.Workbook() workbook.save('flies\student2.xlsx')
-
工作表的写操作
1)新建工作表
工作簿对象.create_sheet(表名,下标)
注意:实际中的新建表,没有的时候才新建,有的时候直接打开。
2)删除工作表
工作簿对象.remove(工作表对象)
workbook.remove(workbook['sheet1']) workbook.save('flies\student2.xlsx')
注意:实际中删除表,存在的时候才能删。
3)单元格的写操作
单元格对象.value = 数据
Java_sheet = workbook['Java'] Java_sheet.cell(1,3).value = '电话' Java_sheet.cell(2,1).value = None Java_sheet.cell(4,2).value = 'stu003' workbook.save('flies\student2.xlsx')