没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
目录
Python 面向对象三大特征:封装、继承、多态 ..........................................................................................................2
excel 文件处理模块对比.................................................................................................................................................3
xlrd 模块.......................................................................................................................................................................3
openpyxl 模块 ..............................................................................................................................................................6
csv 模块......................................................................................................................................................................17
常用代码实例函数 ........................................................................................................................................................19
1. 返回某个文件夹下的所有指定格式文件路径 .................................................................................................19
2. 返回某个文件夹下的文件夹路径.....................................................................................................................19
3. 获取执行文件路径,创建表格.........................................................................................................................20
4. 创建文件夹并保存文件.....................................................................................................................................20
5. 查看某列有多少非空值(某开始行到遇到第一个空白单元格) .................................................................20
6. 查找某文件的指定字符串行列位置 .................................................................................................................20
Python 面向对象三大特征:封装、继承、多态
类的封装:封装之后,可以直接调用类的对象,来操作内部的一些类方法,不需要让使用者看到代码工作的细节。
容器(列表、元组、字符串、字典等),是对数据的封装。
函数,是对语句的封装。
类,是对方法和属性的封装,也就是对函数和数据的封装。
类的继承:类可以从其它类或者元类中继承它们的方法,直接使用。
类对象是多态的:也就是多种形态,可对不同的类对象使用同样的操作方法,而不需要额外写代码。
OOP 面向对象编程(Object-oriented Programming)是一种封装代码的方法。
对象=属性+方法
类 class:用来描述具体相同的属性和方法的对象的集合
对象:类不能直接使用,通过类创建出的实例对象才能使用
属性:类中所有变量(特征描述)
方法:类中所有函数
实例方法:无装饰器 --->第一个参数必须是 self,代表这个实例本身。只能通过实例对象调用。
类方法:@classmethod --->第一个参数必须是 cls,代表类本身。
静态方法: @staticmethod --->没有参数限制,可无参数。
� self/cls 特殊参数的命名可随意,通过其访问类的相关属性。
� 静态方法和类方法都是类级方法,不同于实例方法
实例化:从
类
变成
实例对象
的过程
#coding=utf-8
class Person: #创建名为Person的类(类名一般以大写字母开头)
country = 'china' #类属性。[直接定义在类体中的变量]与所属的类对象绑定,不依赖于实例对象。[类名.属性名]直接调用。
__language = "chinese" #私有类属性(不能直接外部调用)
def __init__(self, name,age): #特殊实例方法/构造函数。self是自参数,表示这个实例本身,必须是类中任何函数的第一个参
数,命名随意。
self.name = name #实例属性。[在类的方法中定义的变量] 从属于实例对象。 [对象名.属性名]调用。
self.__age = age #实例私有属性(不能直接外部调用)
def myfunc(self): #实例方法。无装饰器。只能通过实例调用。当创建对象时self参数指向该对象,调用时通过self参数得知
哪个对象调用了该方法。
sex = "girl" # 局部变量,不以self为前缀
print ("正在调用实例方法:%s今年%s岁,%s"%(self.name,self.__age,sex)) #有文字时需在文件开头加#coding=utf-8(Python
默认编码文件是ASCII码,否则报SyntaxError)
pass # 当class没有内容时放入pass语句中以避免出错(class定义不能为空)。
@classmethod
def classfunc(cls): #类方法。定义时使用@classmethod装饰器。可以通过类名和实例两种方式进行调用。cls表示类本身,
必须为第一个参数,命名随意,通过cls可以访问类的相关属性。
print("正在调用类方法:%s"%cls) #静态方法和类方法都是类级方法,不同于实例方法
@staticmethod
def statfunc(ss): #静态方法。定义时使用@staticmethod装饰器。可以通过类名和实例两种方式进行调用。没有参数限制,可
无参数。
print("正在调用静态方法:%s %s"%(ss,Person.country)) #静态方法和类方法都是类级方法,不同于实例方法
def func(self): #创建函数
print ("after myfunc")
a = Person('adf',24) #实例化类Person(实例化:从类变成实例对象的过程)
a.name = 'abc' #修改实例变量name(替换对象de属性-实例化再使用)
a.myfunc() #调用实例方法 ---> 正在调用实例方法:abc今年24岁,girl
Person.classfunc() #调用类方法 --->正在调用类方法:__main__.Person
Person.statfunc('in') #调用静态方法 --->正在调用静态方法:in china
Person.myfunc = func #重写类的方法
a.myfunc() #调用实例方法 ---> after myfunc
print(Person.country) #调用类属性 ---> china
print(a._Person__language) #调用类私有属性 ---> chinese
print(a._Person__age) #调用实例私有属性 ---> 24
� 修改类属性和类方法,将会影响所有的实例
� 修改某个实例的属性,只会影响这个实例本身
� 不能修改实例的方法
excel 文件处理模块对比
xls 格式是 Excel2003 版本及其以前版本所生成的文件格式。 其最大的特点就是:仅有 65536 行、256 列。因此
规模过大的数据不可以使用 xls 格式读写。
xlsx 为 Excel2007 及其之后的表格格式,也是现在 Excel 表格的主流格式。
与 xls 相比,它可以存储 1048576 行、16384 列数据,存储相同数据,xlsx 格式要比 xls 格式文件要小得很多。
CSV 为逗号分隔值文件。CSV 逗号分隔值文件格式,其以纯文本形式存储表格数据(数字和文本),可以用 Excel
软件打开。
➢ xlrd 模块既可读取 xls 文件也可读取 xlsx 文件。
➢ xlwt 模块只能写 xls 文件,不能写 xlsx 文件(写 xlsx 程序不会报错,但最后文件无法直接打开,会报错)。默认
保存在 py 文件相同路径下,如果该路径下有相同文件,会被新创建的文件覆盖。
➢ openpyxl 模块读、写和修改 xlsx 文件(Excel 2010 xlsx / xlsm / xltx / xltm),不能处理 xls 文件。
➢ pandas 可以从各种文件格式 CSV、JSON、SQL、Microsoft Excel 导入数据。
xlrd 模块
Book(class)>Sheet(class)>Cell(class)
Book(class) 工作薄对象,由 xlrd.open_work("example.xls")返回
工作薄对象.nsheets
sheets 数
工作薄对象.sheet_names
sheet 名称列表
工作薄对象.sheets
sheet 列表
工作薄对象.sheet_by_index(sheetx)
按序号提取 sheet
工作薄对
象.sheet_by_name(sheet_name)
按名称提取 sheet
Sheet(class)表对象,由 Book object 相关方法返回
表对象.name
sheet 名
表对象.nrows
行数
表对象.ncols
列数
表对象.cell(rowx,colx)
第 rowx 行 colx 列的单元格
表对象.cell_type(rowx,colx)
数据类型
表对象.cell_value(rowx,colx)
数值
表对象.col(colx)
第 colx 列所有单元格组成的列表
表对象.col_slice(colx, start_rowx=0,
end_rowx=None)
第 colx 列指定单元格组成的列表
colx 表示是获取第几列的数据; start_rowx 表示从索引为多少开始; end_rowx 表示从索
引为多少结束。end_rowx 为 None 表示结束没有限制
表对象.col_types(colx, start_rowx=0,
end_rowx=None)
第 colx 列指定单元格数值类型组成的列表
表对象.col_values(colx, start_rowx=0,
end_rowx=None)
第 colx 列指定单元格数值组成的列表
表对象.row
同样有 col 的各项操作,此处略去
Cell(class) 由 Sheet object(s)相关方法返回
单元格对象.ctype
一个 int 型变量,对应不同的数值类型
0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
单元格对象.value
单元格的值
python 读取 excel 中单元格的内容返回的有 5 种类型。
ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error。
即 date 的 ctype=3,这时需要使用 xlrd 的 xldate_as_tuple 来处理为 date 格式,先判断表格的 ctype=3 时 xldate 才能
开始操作。
if (sheet.cell(row,col).ctype == 3):
date_value = xlrd.xldate_as_tuple(sheet.cell_value(rows,3),book.datemode)
date_tmp = date(*date_value[:3]).strftime('%Y/%m/%d')
判断 ctype 是否等于 3,如果等于 3,则用时间格式处理
# -*- coding:utf-8 -*-
import xlrd # 导入模块
import os
'''
data.xlsx
number A B C
1 A1 B1 C1
2 A2 B2 C2
3 A3 B3 C3
4 A4 B4 C4
'''
os.chdir(r'/Users/rffagl100rffagl100/Documents/pyproject/testexcel') # 修改工作路径
workbook = xlrd.open_workbook(filename='data.xlsx') # filename 是文件的路径名称
table = workbook.sheet_by_index(0) # 通过索引顺序获取第一个工作表
'''
获取需要操作的 sheet 表格(有三种方法)
①通过索引获取 table = workbook.sheets()[0]
②通过索引顺序获取 table = workbook.sheet_by_index(0)
③通过 sheet 名称获取 table = workbook.sheet_by_name(sheet_name='Sheet1')
补充:获取工作薄中所有 sheet 名称 names = workbook.sheet_names() --->['Sheet1', 'Sheet2', 'Sheet3']
Book(class) 由 xlrd.open_work("example.xls")返回
nsheets: sheets 数
sheet_names: sheet 名称列表
sheets: sheet 列表
sheet_by_index(sheetx): 按序号提取 sheet
sheet_by_name(sheet_name): 按名称提取 sheet
Sheet(class) 由 Book object 相关方法返回
name: sheet 名
nrows: 行数
ncols: 列数
cell(rowx,colx): 第 rows 行 colx 列的单元格
cell_type(rowx,colx): 数据类型
cell_value(rows,colx): 数值
col(colx): 第 colx 列所有单元格组成的列表
col_slice(colx,start_rowx=0,end_rowx=None): 第 colx 列指定单元格组成的列表
col_types(colx,start_rowx=0,end_rowx=None): 第 colx 列指定单元格数值类型组成的列表
col_values(colx,start_rowx=0,end_rowx=None): 第 colx 列指定单元格数值组成的列表
row 同样有 col 的各项操作,此处略去
Cell(class) 由 Sheet object(s)相关方法返回
ctype: 一个 int 型变量,对应不同的数值类型
value: 单元格的值
'''
# 获取 sheet 中有效行数,有效列数,返回该行的有效单元格长度
print(table.nrows, table.ncols, table.row_len(0)) # ---> 5 4 4
# 获取指定行或者列中所有的数据
# 获取指定行中的数据并以列表的形式返回: rowx 表示是获取第几行的数据; start_col 表示从索引为多少开始; end_colx 表示从索引为多少结束,end_colx
为 None 表示结束没有限制
table_list = table.row_values(rowx=1, start_colx=1, end_colx=None) # --->['A1', 'B1', 'C1']
print(table_list)
print(table.row(0)) # 返回由该行中所有的单元格对象组成的列表 # ---> [text:'number', text:'A', text:'B', text:'C']
print(table.row_slice(1)) # 返回由该行中所有的单元格对象组成的列表 # ---> [number:1.0, text:'A1', text:'B1', text:'C1']
print(table.row_types(0, start_colx=0, end_colx=None)) # 返回由该行中所有单元格的数据类型组成的列表 # ---> array('B', [1, 1, 1, 1])
# row 同样有 col 的各项操作.获取指定列中的数据并以列表的形式返回: colx 表示是获取第几列的数据; start_rowx 表示从索引为多少开始; end_rowx 表
示从索引为多少结束,end_rowx 为 None 表示结束没有限制
剩余20页未读,继续阅读
资源评论
current233
- 粉丝: 5
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现文档+程序边缘计算任务卸载与资源调度的算法,是论文的源代码,具有价值.rar
- 什么是学生成绩管理系统c++以及学习学生成绩管理系统的意义
- 什么是词向量-以及学习关于了解词向量的意义
- 什么是mybatis动态sql以及学习mybatis动态sql的意义
- 华为数据治理方法论,包括:数据治理框架、数据治理组织架构、数据治理度量评估体系以及华为数据治理案例分享
- 基于matlab实现对表面肌电信号进行归一化处理,并对归一化后的图形显示 .rar
- 基于matlab实现单级倒立摆的 T-S 模型 包括 LMI 程序源码
- 图书管理系统(struts+hibernate+spring+ext).rar
- 基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
- STM32使用PWM驱动舵机并通过OLED显示
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功