namedtuple新型数据类型
Python中存储系列数据,比较常见的数据类型有list,除此之外,还有tuple数据类型.tuple元组的item只能通过index访问,collections模块的namedtuple子类不仅可以使用item的index访问item,还可以通过item的name进行访问。可以将namedtuple理解为c中的struct结构,其首先将各个item命名,然后对每个item赋予数据。
from collections import namedtuple
#python自带namedtuple使用说明
#def namedtuple(typename, field_names, *, verbose=False, rename=False, module=None):
# - typename: 元组名称
# - field_names : 元组中元素的名称
# - rename: 如果元素名称中包含python关键字, 必须设置rename=True
Info = namedtuple('Users',['name','age','college'])
userone = Info('sheen',16,'xupt')
print(userone,type(userone))
print(userone.name)
openyxl模块
是python的第三方库,对xlsx格式的Excel文档进行操作
Excel基本信息
- 工作薄(workbook)
- 工作表(sheet)
- 活动表(active sheet)
- 行(row): 1,2,3,4,5,6.......
- 列(column): A,B,C,D........
- 单元格(cell): B1, C1
python与excel
import openpyxl
#1.加载excel文档
workbo = openpyxl.load_workbook("example.xlsx")#<class 'openpyxl.workbook.workbook.Workbook'>
all_sheet = workbo.sheetnames #显示所有的工作表,['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4']
active_sheet = workbo.active #显示活动表,<Worksheet "Sheet4">
#2.选择要操作的工作表
sheet = workbo['Sheet1'] #选择要操作的工作表
title_sheet = sheet.title #获取工作表名称,Sheet1
#3.查看指定的单元格信息
cell_b1 = sheet.cell(row=1,column=2) #查找指定单元格信息,返回一个对象,<Cell 'Sheet1'.B1>
value_b1 = cell_b1.value #查看指定单元格内容,17
#4.获取工作表的行数和列数
max_row = sheet.max_row #获取工作表行数
max_column = sheet.max_column #获取工作表列数
#5.修改工作表信息和单元格信息
sheet.title = 'family_info' #修改工作表的标题
sheet['B1'] = 100 #修改单元格值
#6.访问所有单元格信息
info_row = sheet.rows #返回的是一个生成器,<generator object Worksheet._cells_by_row at 0x000001DB770DFF68>
for row in info_row: #遍历工作表,拿出每一个值
for column in row:
print(column.value,end=' ')
print()
#7.保存修改信息
workbo.save(filename='modify.xlsx')
excel再排序
根据表格内容再次排序,并保存到新的文件中
# 需求:
# 商品名称 商品价格 商品数量
# - 定义一个函数, readwb(wbname, sheetname=None)
# - 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;
# - 根据商品的价格进行排序(由小到大), 保存到文件中;商品名称:商品价格:商品数量
import openpyxl
def readwb(wbname,sheetname=None):
workbo = openpyxl.load_workbook(wbname)
if not sheetname:
sheet = workbo.active
else:
sheet = sheetname
wb_info = []
for row in sheet.rows:
row_info = [val.value for val in row]
wb_info.append(row_info)
return sorted(wb_info,key=lambda item:item[1])
def save_to_excel(data,wbname,wbsheet='Sheet1'):
workbo = openpyxl.Workbook()
sheet = workbo.active
for row_index,row in enumerate(data):
for column_index,cell_value in enumerate(row):
sheet.cell(row=row_index+1,column=column_index+1,value=cell_value)
workbo.save(wbname)
excel_info = readwb('Book1.xlsx')
save_to_excel(excel_info,'Book1_modify.xlsx')
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。