CSV和excel文件操作
csv文件叫逗号分隔值文件-每一行都是通过逗号来区分出不同的列
csv文件可以直接通过excel打开,以行列的形式保存和显示数据,csv文件只能存储数据,不能保存公式和函数
csv读操作
打开文件的两种方式:
1)文件对象=open(文件路径)
操作文件
文件对象。close()
2)with open(文件路径) as 文件对象:
操作文件
csv读操作流程:
1)创建打开csv文件
2)创建reader获取文件内容
获取文件内容两种方式:
csv.reader(文件对象)
–获取文件内容返回一个迭代器,并以列表为单位返回每一行内容
csv.DictReader(文件对象)
–获取文件内容返回一个迭代器,并以字典为单位从第二行开始返回每一行内容
csv写操作
csv文件写操作流程:
1)打开文件
2)创建writer对象
创建writer对象的方式有两种:
1)csv.writer(文件对象)
-创建writer对象,这个对象写入的时候以列表
为单位写入
2)csv.DictWriter(文件对象,键列表)
-创建writer对象,以字典
为单位写入
writer.writeheader()
–以字典写入,写入文件头
3)写入方式,单行写入,多行写入
writer.writerow -单行写入
writer.writerows-多行写入
# # a.以列表为单位写入一行内容
writer=csv.writer(f)
# 一行写入一行内容
writer.writerow(['姓名','出生日期','性别','电话'])
writer.writerow(['小白','1999-9-9','男','789231'])
# # 一次写入多行内容
writer.writerows([
['小红','1996-6-9','女','7892321'],
['小蓝','2000-2-3','男','7891231']
])
# b.以字典为单位写写入一行内容
writer=csv.DictWriter(f,['姓名','出生日期','性别','电话'])
# 写入文件头(将字典的键写入文件开头
writer.writeheader()
# 一次写入一行
writer.writerow({'姓名':'xiaoming','出生日期':'1999-9-9','性别':'男','电话':'110'})
# 一次写入多行
writer.writerows([
{'姓名':'xiaoning','出生日期':'1996-5-9','性别':'男','电话':'111230'},
{'姓名':'xiaohong','出生日期':'1999-9-24','性别':'女','电话':'10230'}]
)
excel文件的读写操作
使用execl相关操作,必须先导入模块
import openpyxl
execl基本认识:
工作簿:一个excel文件就是一个工作簿
工作表:一个工作簿可以有多个工作表(至少一个)
单元格:单元格是excel文件保存数据的基本单位
行号和列号:用来确定单元格位置
获取execl文件内容
1)打开excel文件创建工作簿对象
打开方式有两种:
openpyxl.open(文件路径)
openpyxl.load_workbook(文件路径)
获取工作簿中所有的工作表的表名
工作簿对象.sheetnames
2)获取工作表
工作簿对象.active
-获取活跃表(即关闭文件的所处位置的工作表)
工作簿对象[工作表名称]
-获取指定名称对应的工作表
3)获取单元格
工作表对象.cell(行号,列号)
row代表行,column代表列
4)获取单元格内容
单元格对象.value
5)获取最大行号和最大列号(数据的有效行和有效列)
工作表对象.max_row
最大行
工作表对象.max_column
最大列
# 获取一个工作表中的所有单元格数据
for row in range(1,工作表.max_row+1):
column=[]
for col in range(1,工作表.max_column+1):
cell=工作表.cell(row,col)
column.append(cell.value)
print(column)
excel文件写操作
对excel进行写操作后,操作完成后必须保存,否则操作无效
写操作流程:
1.新建工作簿
1)新建工作簿对象
workbook=openpyxl.Workbook()
2)保存
工作簿对象.save(文件路径)
在实际i情况中,新建的时候需要判断工作簿对应的文件是否已经存在,存在就直接打开,不存在才创建
有两种方式判断:
# 方法1:利用异常捕获
try:
workbook=openpyxl.open('files/student2.xlsx')
except FileNotFoundError:
workbook=openpyxl.Workbook()
workbook.save('files/student2.xlsx')
# 方法2:
import os
# # os.path.exists(文件路径) -判断指定文件是否存在,存在返回True,不存在返回False
if os.path.exists('files/student2.xlsx'):
workbook=openpyxl.open('files/student2.xlsx')
else:
workbook=openpyxl.Workbook
workbook.save('files/student2.xlsx')
2.工作表的写操作
1)新建工作表
工作簿对象.crete_sheet(表名, 下标)
工作簿对象.crete_sheet()
实际情况中,判断工作表是否存在
if 'Python'in workbook.sheetnames:
sheet=workbook['Python']
else:
sheet=workbook.create_sheet('Python')
workbook.save('files/student2.xlsx')
2)删除工作表
工作簿对象.remove(工作表对象)
工作表对象表示方法:工作簿对象[表名]
3.单元格的写操作
单元格对象.value=数据
-没有就新增,修改数据直接改数据,删除将数据变成空值
工作表对象.cell(行号,列号).value=数据