记录二,【数据处理-python】xlrd,xlwt,openpyxl模块

一,模块对比

1,Python 中csv模块为纯文本模块,没有行数上限,而xlrd模块仅支持row=65536,column=256数据,所以一般大数据时,采用csv模块或者openpyxl模块;

2,openpyxl模块从1开始计数,而csv模块和xlrd模块从0开始计数

3,在数据量较小时,三方运行速度差不多,但是数据量较大时,openpyxl模块运行速度则会慢很多;csv模块基本都是基于列表操作,所以运行速度也会慢很多;

4,当定位某一具体的单元格内容时,csv模块需要遍历行和列的列表,但是openpyxl模块和xlrd模块,就能具体得到;

二,xlrd模块

xlrd模块(只读模式)

• 导入xlrd库
		import xlrd
• 打开xlsx文件
		table = xlrd.open_workbook(r'文件路径')
• 定位sheet工作表
		sheettable=table.sheet_by_name('表单名称')
• 获取总行数
		max_rows = sheetable.nrows  
• 获取总列数
		max_cols = sheetable.ncols
• 获取行内容
    row_values = sheettable.row_values(0)
			内容会保存为一个列表
• 获取列内容
		col_values = sheettable.col_values(0)
			内容会保存为一个列表
• 获取单元格内容
		values = sheettable.cell_value(行号,列号)
			以0开始;

三,xlutils模块

xlutils模块(修改/追加模式)

• 导入xlutils库
		from xlutils.copy import copy
• 将xlrd对象拷贝转化为xlwt对象
		date = copy(table)
• 定位sheet表单
		sheetable=date.get_sheet(0)
• 追加/修改数据
		sheetable.write(行号,列号,'内容')
• 保存文件
		date.save(r'文件路径')

四,xlwt模块

xlwt模块(写入覆盖模式)

      写入数据相当于重新新建了一个表格文件,所以xlrd读出来的数据也会被覆盖掉,

• 新建一个workbook文件
		data = xlwt.Workbook(encoding='utf-8')
• 新建一个sheet工作表
		sheet = data.add_sheet('表单名称',cell_overwrite_ok=False)
			cell_overwrite_ok=True 为不覆盖表,默认为False
• 往单元格里写入数据
		sheet.write(行号,列号,'写入内容')
• 保存表格
		data.save(文件路径)

五,openpyxl模块

• 安装openpyxl库
		pip install openpyxl
• 导入openpyxl库
		import openpyxl
• 打开一个EXCEL文件
		table = openpyxl.load_workbook('文件路径')
• 获取sheet工作表名称
		sheetname= table.active
			取到的名称会组成一个列表;
• 定位到sheet工作表
		sheet = table['sheet表单名称']
 • 获取表格行数
 		rowno = sheet.max_row
• 获取单元格内容
		values=sheetable.cell(行号,列号).value
• 写入数据
		values1=sheet.cell(row=行号,column=列号, value='内容')
• 保存文件
		table.save('文件路径')

六,csv模块

• 导入csv库
		import csv
• 打开csv文件
		p1=Path('文件路径/1234.csv')
• 读取表格内容为列表格式
		with p1.open('r+',encoding='utf-8',newline='') as f :
    	p1 = csv.reader(f)
    	for i in p1:
        print(i)
• 读取表格内容为字典格式
		with p1.open('r+',encoding='utf-8',newline='') as f :
    	p1 = csv.DictReader(f)
    	for i in p1:
        print(i)
• 获取某一列的内容
				i[key]
• 往csv文件内写入内容
		tada="""\
        表头1,表头2,表头3,表头4
        v1-1,v1-2,v1-3,v1-4,
        v2-1,v2-2,v2-3,v2-4,
     """
		with p1.open('w+',encoding='utf-8') as f :
    		f.write(tada)	
 • 往csv文件内追加行
	tada=[[行1],[行2]]
	with p1.open('a',encoding='utf-8',newline='') as f :
    p = csv.writer(f)
    p.writerows(tada[0:])

 • 备注:

  写入时,行之间用逗号隔开,内容用三引号括起来;

newline='' 作用是调整换行符格式;

csv模块会自动新建和保存文件,不用save

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值