我的第一篇Blog!本来想在520发的! 动动手,记录一下学习过程! 心之所向,无问西东!
一、读取Excel工作簿-准备1.pip安装+import导入 第三方库 xlrd、xlwt#安装 xlrd、xlwtpip install xlrdpip install xlwt#导入 xlrd、xlwtimport xlrd #(读取)import xlwt #(写入) - 基础知识1.读取工作薄import xlrdwb = xlrd.open_workbook('工作簿.xls') #读取工作簿
2.读取工作薄下所有工作表wsobj=wb.sheets()#读取工作薄下所有工作表对象wsname=wb.sheet_names()#读取工作薄下所有工作表标名称 3.读取指定工作表对象ws1=wb.sheet_by_name('工作表名')#按指定名称,读取工作表对象-方法一 (常用)ws2=wb.sheet_by_index(1)#按指定序号,读取工作表对象-方法二ws3=wb.sheet()[1]#按指定序号,读取工作表对象-方法三
- 实例引入 以该Excel为例,理解上述内容
#打印test工作薄下所有工作表名称import xlrdwb = xlrd.open_workbook('test.xls')ws = wb.sheets()wsname = wb.sheet_names()print(wsname) 打印结果:['数据1', '数据2', '数据3']
1.打印test工作薄下所有工作表对象及其名称import xlrdwb = xlrd.open_workbook('test.xls')wsobj = wb.sheets()wsname = wb.sheet_names()print(wsobj)print(wsname) 打印结果:[<xlrd.sheet.Sheet object at 0x10aaf1e90>, <xlrd.sheet.Sheet object at 0x10bd0cc10>, <xlrd.sheet.Sheet object at 0x10bd0ced0>]['数据1', '数据2', '数据3']
2.三种方法打印指定工作表对象及名称import xlrdwb = xlrd.open_workbook('test.xls')ws = wb.sheets()wsname = wb.sheet_names()ws1 = wb.sheet_by_name('数据1')ws2=wb.sheet_by_index(0)ws3=wb.sheets()[0] print(ws1)#打印结果#<xlrd.sheet.Sheet object at 0x10bc0da50>
print(ws2)print(ws2.name)#打印结果#<xlrd.sheet.Sheet object at 0x10bc98cd0>#数据1 print(ws3)print(ws3.name)#打印结果:#<xlrd.sheet.Sheet object at 0x10bcba710>#数据1
二、读取excel行和列-基础知识import xlrdws = xlrd.open_workbook('工作簿名.xls').sheet_by_name('工作表名')#获取工作表对象crow = ws.nrows#获取行数ccol = ws.ncools#获取列数 row_date = ws.row_values(行号)#获取指定行数据col_date = ws.col_values(列号)#获取指定列数据
cell_date_1 = ws.cell_value(行号,列号)#获取单元格数据cell_date_2 = ws.cell(行号,列号).value#获取单元格数据 -实例引入- 代码实现import xlrdws = xlrd.open_workbook('test.xls').sheet_by_name('数据1')#获取工作表对象crow = ws.nrows#获取行数ccol = ws.ncols#获取列数print('该表有',crow,'行')print('该表有',ccol,'列')
打印结果 该表有 6 行 该表有 3 列
import xlrdws = xlrd.open_workbook('test.xls').sheet_by_name('数据1')#获取工作表对象row_date = ws.row_values(0)#获取指定行数据print(row_date) 打印结果 [1.0, ‘张三’, 19990101.0]
import xlrdws = xlrd.open_workbook('test.xls').sheet_by_name('数据1')#获取工作表对象col_date = ws.col_values(1)#获取指定行数据print(col_date)
打印结果 [‘张三’, ‘李四’, ‘王二’, ‘麻子’, ‘周五’, ‘郑王’]
#写法import xlrdws = xlrd.open_workbook('test.xls').sheet_by_name('数据1')#获取工作表对象cell_date_1 = ws.cell_value(0,1)#获取单元格数据print(cell_date_1)#张三cell_date_2 = ws.cell(0,1).value#获取单元格数据print(cell_date_2)#张三 三、创建工作薄、工作表和写入单元格-基础知识import xlwtnwb = xlwt.Workbook(encoding='UTF-8')#新建工作簿nws = nwb.add_sheet('工作表名')#添加工作表nws.write(1,2,'要写入的值')#写入单元格nwb.save('工作簿名.xls')
import xlwtnwb = xlwt.Workbook(encoding='UTF-8')#新建工作簿nws = nwb.add_sheet('成绩表')#添加工作表nws.write(1,2,'9999')#写入单元格nwb.save('成绩表.xls') 四、for 循环-基础知识for s in range(10,20,1): print(s)
打印结果 10 11 12 13 14 15 16 17 18 19
#拓展score = int(input('请输入分数:'))if score >= 90: print('good')else: print('not bad')#展示>请输入分数:93>good -实例引入案例一import xlrd,xlwtwb = xlrd.open_workbook('成绩表.xls')ws = wb.sheet_by_name('成绩表')n = 0while n < ws.nrows-1: n+=1 #print(ws.cell_value(n,0),ws.cell_value(n,1)) if ws.cell_value(n,0) == '李四': print(ws.cell_value(n,1)) #打印结果58.0
案例二import xlrd,xlwtwb = xlrd.open_workbook('成绩表.xls')ws = wb.sheet_by_name('成绩表')nwb = xlwt.Workbook(encoding = 'UTF-8')nws = nwb.add_sheet('成绩表')n,m = 0,0while n < ws.nrows-1: n+=1 if ws.cell_value(n,1)>=60 and ws.cell_value(n,2)>=60: m+=1 nws.write(m,0,ws.cell_value(n,0)) nws.write(m,1,ws.cell_value(n,1)) nws.write(m,2,ws.cell_value(n,2))nwb.save('筛选结果.xls') 五、字符串-字符串的切片字符串是常见的数据类型,Python中的字符串是不能修改的,只能做提取、拆分合并重组等操作
s = 'WHO我是谁'print(s[:3])#从左计算,从开头提取到指定位置print(s[3:])#从左计算,从指定位置到结束print(s[1:3])#从左计算,从指定起始位置到指定终止位置print(s[-3:-1])#从右计算,指定的起始位置到指定的终止位置print(s[-3:])#从右计算,指定的起始位置到结束print(s[:])#提取所有字符串print(s[3:-1])#打印结果WHO我是谁HO我是我是谁WHO我是谁我是
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
-字符串的查找indexindex 方法用于从字符串中找出某一个对象第一个匹配项的索引位置,如果查找的字符串不存在则会报出一个异常。
str.index(sub[,start=0[,end=len(str)]])str父字符串sub指定检索的子字符串start 可选参数,开始索引,默认为0.(可单独指定)end 可选参数,结束索引,默认为字符串长度.(不能单独指定) s = 'A组78,B组87,C组88,D组95,B组90'print(s.index('A组'))print(s.index('B组',6))print(s.index('B组',5,7))#0205
-字符串的计数写入文件 import xlwtnwb = xlwt.Workbook(encoding = 'UTF-8')nws = nwb.add_sheet('统计')nwb.save('字符串count查找.xls') countimport xlrd,xlwtfrom xlutils.copy import copyws = xlrd.open_workbook('字符串count查找.xls')ws = wb.sheet_by_name('统计')#重写统计表nwb=copy(wb)nws=nwb.get_sheet('统计')#提取第一列数据n=0while n<ws.nrows-1: n+=1 s = ws.cell_value(n,1)#把ws.cell_value(n,1)弄成变量s nws.write(n,2,s.count('优')) nwb.save('字符串count计数.xls')
-字符串的替换replace 方法用于把字符串中指定的旧字符串替换成指定的字符串,如果指定count可选参数则替换指定的次数,默认为全部替换
str.replace(old,new[,count=str.count(old)]) old旧的字符串 new新的字符串
replaceimport xlwtnwb = xlwt.Workbook(encoding='utf-8')nws = nwb.add_sheet('会计科目表')#nrow = ws.nrows #共有多少列(以最后一列计算,比如有多列,一列长度为8,一列为7,则显示8)#ncol = ws.ncols #有多少行nwb.save('account.xls') s = 'A-优秀;B-良好;C-优秀;D-优秀'print(s.replace('优秀','(good)'))print(s.replace('优秀','(good)',1))print(s.replace('优秀','(good)',2))
#打印结果A-(good);B-良好;C-(good);D-(good)A-(good);B-良好;C-优秀;D-优秀A-(good);B-良好;C-(good);D-优秀 -字符串拆分和合并splitsplit方法拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) 语法结构:str.split(str='',num=string.count(str))
str 表示为分隔符,默认为空格,但是不能为空(‘’)。若字符串中没有分隔符,则把整个字符串作为一个列表元素。 num 表示分隔次数。如果存在参数num,则近分隔成num+1个字符串,并且每个字符串可以赋予一个新的变量
s = '张三、李 四、王二 麻子、小明'print(s.split())print(s.split('、 '))print(s.split('、 ',2))print(s.split('、 ',3))#打印结果['张三、李', '四、王二', '麻子、小明']['张三、李 四、王二 麻子、小明']['张三、李 四、王二 麻子、小明']['张三、李 四、王二 麻子、小明']
joinjoin()方法用于将序列中元素以指定的字符串连接生产一个新的字符串。 语法结构:str.join(sequence) str 分隔符 可以为空 sequence 要连接的元素序列、字符串、元组、字典
i=['a','b','c']print('-'.join(i))print('\t'.join(i))#打印结果a-b-ca b c
|