重制版 day 18 CSV和excel文件操作

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=数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值