python语言基础与应用9_北大陈斌-Python语言基础与应用D9引用扩展模块下

1、时间相关:datetime模块

主要类

datetime.date() 日期(年月日)

datetime.time() 时间(时分秒、毫秒)

datetime.datetime() 处理日期+时间

datetime.timedelta() 处理时段(时间间隔)

获取当前时间

datetime.date.today()

datetime.datetime.now

修改日期格式:strftime格式化

输出国际标准时间格式:datetime.datetime.isoformat()

时间戳

日期转换成时间戳

timetuple函数:将时间转换成struct_time格式

time.mktime函数:返回用秒数来表示时间的浮点数

时间戳转换成日期

datetime.date.fromtimestamp()

时间上的加减法

两个时间点的间隔:timedelta()方法

2、时间相关:calendar模块

月份和星期计算用calendar

制作电子日历

calendar.calendar()

返回多行字符串

calendar.month(,)

返回多行字符串

calendar.prmonth(,)

相当于print(calendar.month(,))

calendar.prcal()

相当于print(calendar.calendar()

将日历列表化

calendar.monthcalendar()

返回某一年的某一个月份日历,是一个嵌套列表,最里层的列表含有七个元素,代表一周的,如果没有本月的日期,则为0

与日历有关的计算

判断闰年:isleap()

计算某月共有多少天:monthrange(,)

从周几开始,从0开始依次为周一、周二…

计算某天是周几:weekday(,,)

返回值为0~6,依次对应的是周一

3、时间相关:time模块

获取时间戳

time.time()方法

用处:可以获取代码运行多少秒

获取日期格式

获取当前时间:time.asctime()/time.ctime()

将元组数据转化为日期:

t = (2018, 8, 13,11, 42, 31, 0, 0, 0)

time.asctime(t)

数值对应:年,月,日,时,分,秒,周几,一年中的第几天,是否为夏令时间

利用索引获取时间信息

struct_time类

time.localtime()

out:time.struct_time(tm_year=2020, tm_mon=9, tm_mday=10, tm_hour=10, tm_min=45, tm_sec=30, tm_wday=3, tm_yday=254, tm_isdst=0)

索引获取时间信息:

t = time.localtime()

year = t[0]

out:2020

sleep函数

让程序运行到某处便暂停几秒:time.sleep(秒数)

4、算术模块

math模块

math模块支持浮点数运算

cmath模块支持复数运算

cmath.polar() 极坐标

cmath.rect() 笛卡尔坐标

cmath.exp(x) e^x

cmath.log(x,a) 以a为底的x的对数

decimal模块

小数-固定精度的浮点值,当做相等判断时小心:

如:0.1+0.1+0.1-0.3=5.551115123125783e-17

生成小数:

from decimal import Decimal

Decimal(‘0.1’)

小数计算:

Decimal(‘0.1’)+Decimal(‘0.1’)+Decimal(‘0.1’)-Decimal(‘0.3’)

Decimal(‘0.0’)

fractions模块

分数-实现一个有理数对象

生成分数:

from fractions import Fraction

Fraction(1,4)/Fraction(‘0.25’)

Fraction(1, 1)

浮点数转换为分数:

Fractions.from_float(1.75)

转换后可能会有精度损失

random模块

伪随机数:计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可以遇见的

随机数种子:随机种子相同,随机数的序列也是相同的

random.seed(a = None)

random():生成范围在[0,1)之间的随机实数

uniform(): 生成指定范围内的随机浮点数

randint(m,n): 生成指定范围[m,n]内的整数

randrange(a,b,n),可以在[a,b)范围内,按n递增的集合中随机选择一个数

getrandbits(k),生成k位二进制的随机整数

choice(),从指定序列中随机选择一个元素

sample(),能指定每次随机元素的个数

shuffle(),可以将可变序列中所有元素随机排序

5、持久化模块

对象持久化

对象在创建程序退出后还存在

标准库模块:

任意Python对象格式化和解格式化:pickle

实现通过键访问的文件系统,以存储字节串:dbm

按照键把pickle处理后的对象存储到一个文件中:shelve

构造数据库

shelve模块:提供基本的存储操作,通过构造一个简单的数据库,像操作字典一样按照键存储和获取本地的Python对象,使其可以跨程序运行而保持持久化

键:必须是字符串,且是唯一的

值:任何类型Python对象

与字典类型区别:一开始必须打开shelve,并且修改后需要关闭它

数据处理:不支持类似SQL查询工具,但只要是通过键获取到保存在文件的对象,就可以像正常的数据对象一样处理

shelve常用操作

将任何数据对象,保存到文件中去:

d = shelve.open(filename)

open函数在调用时返回一个shelf对象,通过该对象可以存储内容

类似字典形式访问,可读可写:

d[key] = data

value = d[key]

del d[key]

操作完成后,关闭文件:

d.close()

6、文本文件读写

文件的打开

普通文件:数据持久化的最简单类型

open()函数

f = open(filename[,mode[,buffering]])

f:open()返回的文件对象

filename:文件的字符串名

mode:可选参数,打开模式和文件类型

buffering:可选参数,文件的缓冲区,默认为-1

mode第一个字母表示对其的操作:

r表示读模式

w表示写模式

x表示在文件不存在的情况下新创建并写文件

a表示在文件末尾追加写内容

+表示读写模式

mode第二个字母是文件类型:

t表示文本类型

b表示二进制文件

文件的读写和访问

文件的写操作:

f.write(str)

f.writelines(strlist):写入字符串列表

文件的读操作:

f.read()

f.readline():返回一行

f.readlines():返回所有行、列表

文件的关闭

f.close()

使用上下文管理(context manager):确保在退出后自动关闭文件

with open(‘textfile’,‘rt’) as myfile:

myfile.read()

结构化文本文件:csv

csv文件:纯文本文件,以“,”为分隔符,值没有类型,所有值都是字符串,不能指定字体颜色等;不能指定单元格宽高,不能合并单元格;没有多个工作表;不能嵌入图像图表

c:,

s:分隔

v:值

文本读取-read

re = csv.reader()

接受一个可迭代对象(csv文件),能返回一个生成器,可以从其中解析出内容

文件读取-DictReader(用于带有表头的文件)

re = csv.DictReader()

与reader类似,但返回的每一个单元格都放在一个元组的值内

文件写操作

w = csv.writer()

w.writerow(rows)

当文件不存在时,自动生成

支持单行写入和多行写入

字典数据写入

w = csv.DictWriter()

w.writeheader()写表头

w.writerow(rows)

结构化文本文件:Excel

openpyxl模块

用来读写扩展名为xlsx/xlsm/xltx/xltm的文件

workbook类是对工作簿的抽象

worksheet类是对表格的抽象

cell类是对单元格的抽象文件写操作

操作之前先导入第三方库

安装:pip install openpyxl

导库:from openpyxl import workbook

创建Excel文件

一个Workbook对象代表一个Excel文档,使用该方法创建一个Worksheet对象后才能打开一个表

from openpyxl import Workbook

wb = Workbook()

ws = wb.active

读取Excel文件

from openpyxl import load_workbook

wb = load_workbook(filename)

ws = wb.file.active

获取单元格信息

获取cell对象

c = wb[‘sheet’][‘A1’]

c = wb[‘sheet’].cell(row=1,column=1)

c.coordinate:返回单元格坐标

c.value:返回单元格的值

c.row:返回单元格所在的行坐标

c.column:返回单元格所在列坐标

结构化文本文件:PDF

处理PDF文件的库-PyPDF2:包含pdfFileReader、pdfFileMerger、PageObject、pdfFileWriter类,读写、分隔合并,文件转换

读取PDF文件:

readFile = open(‘test.pdf’,‘rb’)

pdfFileReader = PdfFileReader(readFile)

pdfFileReader类

.getNumPages():计算PDF文件总页数

.getPage(index):检索指定编号的页面

PDF文件写操作:

writeFile = ‘output.pdf’

pdfFileWriter = PdfFileWriter()

pdfFileWriter类

.addPage(pageObj):根据每页返回的PageObject,写入到文件

.addBlankPage():在文件的最后一页后面写入一个空白页,保存到新文件

合并多个文档:

pdf_merger = PdfFileMerger()

pdf_merger.append(‘python2020.pdf’)

pdf_merger.merger(20, ‘insert.pdf’)

pdf_merger.write(‘merge.pdf’)

单个页面操作-PageObject类

.extractText():按照顺序提取文本

.getContents():访问页面内容

.rotateClockwise(angle):顺时针旋转

.scale(sx,sy):改变页面大小

原文链接:https://blog.csdn.net/m0_37877850/article/details/108508273

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值