day18学习总结:
-
csv文件:
-
CSV文件:叫做逗号分割值文件 - 每一行内容是通过逗号来区分出不同的列
-
csv文件可以通过Excel直接打开,已行列的形式保存和显示数据,他只能存储数据,不能保存公式和函数。
-
csv文件读操作
-
创建打开csv文件
f = open('files/电影.csv', 'r', encoding='utf-8')
-
创建reader获取文件内容
-
csv.reader(文件对象) - 获取文件内容,返回一个迭代器,并且以列表为单位返回每一行内容
reader1 = csv.reader(f) print(list(reader1))
-
csv.DictReader(文件对象) - 获取文件内容,返回一个迭代器,并且以字典为单位返回第二行开始的每一行内容(字典的键是第一行内容)
reader2 = csv.DictReader(f) print(list(reader2))
-
-
-
-
csv文件写操作
-
打开文件
-
创建writer对象
-
csv.writer(文件对象) - 创建writer对象,这个对象在写入数据的时候一行对应一个列表
import csv f = open(r'../files/data.csv','w',encoding='utf-8') # a,以列表为单位写入一行内容 writer = csv.writer(f) writer.writerow(["姓名","爱好",'性别','电话']) writer.writerow(["小明","打球",'男','110']) # 一次写入多行内容 writer.writerows([ ['小花', '化妆', '女', '120'], ['张三', '游戏', '男', '119'] ])
-
csv.DictWriter(文件对象,键列表) - 创建writer对象,以字典为单位写入数据
writer = csv.DictWriter(f,["姓名","爱好",'性别','电话']) # 写入文件头(将字典的键写入到文件开头) writer.writeheader() #一次写入一行内容 writer.writerow({'姓名':'小明','爱好':'打球','性别':'男','电话':'110'}) # 一次写入多行内容 writer.writerows([ {'姓名': '肖华', '爱好': '上网', '性别':'男', '电话': '123'}, {'姓名': '小芳', '爱好': '逛街', '性别':'女', '电话': '456'} ])
-
-
-
虚拟环境
-
系统环境:安装Python就可以为计算机提供一个Python的系统环境
-
虚拟环境:程序员需要自己创建的Python环境
-
能够创建虚拟环境的前提: 存在系统环境
-
环境的作用:
- 提供Python解释器
- 提供第三方库
- 虚拟环境的存在,可以让第三方库根据类别或者项目分开管理
-
使用虚拟环境的建议:
- 工作的时候,一个项目一个虚拟环境,并且能够将虚拟环境直接放在项目中
- 学习的时候,一类项目一个虚拟环境,不同类别的虚拟环境全部放在一个地方
-
怎么创建虚拟环境:
-
使用pycharm创建
-
点击file,找到settings进入
-
找到Project下的Python Interpreter,并在右边的Python Interpreter右边的框里点击下箭头,并点击show all
-
点击show all 后点击+号
-
之后选择一个路径存放一类的项目的虚拟环境,文件夹名称尽量不要使用中文,点击OK,就可以了
-
-
使用指令创建
-
-
-
Excel文件操作
-
认识Excel文件
- 工作薄:一个Excel文件就是一个工作簿
- 工作表:一个工作簿中可以有多个工作表
- 单元格:单元格就是Excel文件保存数据的基本单位
- 行号和列号:可以确定单元格的位置
-
获取Excel文件内容(读操作)
-
打开Excel文件创建工作簿对象
-
语法1:openpyxl.load_workbook(Excel文件路径)
-
语法2:openpyxl.open(Excel文件路径)
import openpyxl workbook = openpyxl.open(r'../files/三国人物数据.xlsx')
-
-
获取工作表对象
-
语法1:工作簿对象.active - 获取活跃表(选中的表)
-
语法2:工作表对象[工作表名称] - 获取指定名字对应的工作表
# 获取工作表中所有的工作表的表名 result= workbook.sheetnames print(result) sheet1 = workbook['三国武将数据'] print(sheet1)
-
-
获取单元格
-
语法:工作表对象.cell(行号,列号)
cell1 = sheet1.cell(50,1) print(cell1)
-
-
获取单元格内容
-
语法:单元格对象.value
print(cell1.value)
-
-
获取最大行号和列号
-
语法1:工作表.max_row - 最大行号
-
语法2:工作表.max_column - 最大列号
print(sheet1.max_row) print(sheet1.max_column)
-
-
获取第一列数据
list1 = [] for row in range(1,sheet1.max_row+1): cell = sheet1.cell(row,1) list1.append(cell.value) print(list1)
-
-
Excel写操作
- 注意:不管是以什么样的方式对Excel进行写操作,操作完成后都要保存
-
新建工作簿
-
新建工作簿对象
import openpyxl workbook = openpyxl.Workbook()
-
保存
-
工作簿对象.save(文件路径)
workbook.save('file/new1.xlsx')
-
实际中新建工作簿的时候需要先判断工作簿对应的文件是否存在,存在就不需要新建,不存在才新建
try: workbook = openpyxl.open(r'../files/student.xlsx') except FileNotFoundError: workbook = openpyxl.Workbook() workbook.save('file/new1.xlsx)
-
-
-
工作表的写操作
-
新建工作表
-
语法:工作簿对象.create_sheet(表名,下标)
workbook.create_sheet('java') workbook.create_sheet('python') workbook.create_sheet('c++',0) workbook.save('file/new1.xlsx') workbook.create_sheet('php') workbook.save('file/new1.xlsx')
-
实际中的新建表:没有的时候才新建,有的时候直接打开
if java" in workbook.sheetnames: sheet = workbook['java'] else: sheet = workbook.create_sheet('java') workbook.save('file/new1.xlsx')
-
-
-
删除工作表:
-
语法:工作簿对象.remove(工作表对象)
workbook.remove(workbook['sheet1'])
-
实际中的删除表:存在的时候才删除
-
if 'sheet1' in workbook.sheetnames: workbook.remove(workbook['sheet1']) workbook.save('file/new1.xlsx')
-
-
单元格的写操作
-
语法:单元格对象.value = 数据
#单元格对象.value = 数据 java_sheet.cell(1,1).value = "姓名" # 增加 java_sheet.cell(1,2).value = "性别" # 增加 java_sheet.cell(2,1).value = "小明" # 增加 java_sheet.cell(2,2).value = "男" # 增加 java_sheet.cell(2,2).value = '女' # 修改 java_sheet.cell(1,1).value = None # 删除 workbook.save('file/new1.xlsx')
-
-