python小白之路:第五章 模块、包与库 第二节 内置模块

序列化

可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据。

1.二进制序列化模块pickle

 import pickle

一些函数:

pickle.dumps()

序列化,可以把一个python的任意对象序列化成为一个二进制

pickle.loads()

反序列化,可以把一个序列化后的二进制数据反序列化为python的对象

pickle.dump(vars,file=)

序列化,可以把一个数据对象进行序列化并写入到文件中

pickle.load(file=)

反序列化,在一个文件中读取序列化的数据,并且完成一个反序列化

2.文本序列化模块json

可以把一些符合转换的python数据对象,转为json格式的数据

  import json

一些函数:

json.dumps()

json.loads()

json.dump()

json.load()

数学模块 Math

 import math

math.ceil()

向上取整

math.floor()

向下取整

math.pow(x,y)

计算x的y次方,结果是浮点

math.sqrt()

开平方,结果是浮点数

math.fabs()

计算绝对值

math.modf()

把一个数拆分成整数进而小数组成的元组,两个数都是浮点数

 print(math.modf(3))
 print(math.modf(3.2,))
 
 # (0.0, 3.0)
 # (0.20000000000000018, 3.0)

math.copysign(x,y)

把y的符号拷贝给x。并返回改变后的x

math.fsum()

将容器类型数据中的元素进行求和,返回一个浮点数

print(sum([1,2,3]))
print(math.fsum([1,2,3]))

# 6
# 6.0

math.factorial(x)

返回x的阶乘,x必须是整数

math.pi

数学常数 π

print('%.2f'%math.pi)
print(math.pi)

# 3.14
# 3.141592653589793

math.e

数学常数 e

 print('%.2f'%math.e)
 print(math.e)
 
 # 2.72
 # 2.718281828459045

math.tau

数学常数 τ Tau 是一个圆周常数,等于 2π,圆的周长与半径之比。

 print('%.2f'%math.tau)
 print(math.tau)
 
 # 6.28
 # 6.283185307179586

math.inf

浮点正无穷大,对于负无穷大,使用 -math.inf ,相当于float(‘inf’)的输出。

math.nan

浮点“非数字”(NaN)值。 相当于 float(‘nan’) 的输出。

随机模块 random-随机数生成器

 import random

random.random()

返回0-1之间的随机小数,左闭右开。

random.randrange([start],stop,[step])

返回指定范围内的随机整数,左闭右开。

random.randint(a,b)

随机产生指定范围内[a,b]的随机整数。return self.randrange(a, b+1)

random.uniform(a,b)

获取指定返回内的随机小数 return a + (b-a) * self.random()

random.choice(seq)

从非空序列 seq 返回一个随机元素。 如果 seq 为空,则引发 IndexError。

random.shuffle(x[,random])

将序列 x 随机打乱。

res = [1,2,3]
print(random.shuffle(res))
print(res)

# None
# [3, 1, 2]

random.sample(population,k)

返回从总体序列或集合中选择的唯一元素的 k 长度列表。 用于无重复的随机抽样。

系统接口模块 os

系统操作相关模块,os模块对接当前操作系统

 import os

os.getcwd()

返回一个当前的工作目录的字符串

os.chdir(path)

修改当前的工作目录

os.listdir(path)

返回指定目录的所有项各是一个元素的列表

os.mkdir(path)

在当前指定的工作目录创建文件夹,无法递归创建

os.makedirs(name)

可以递归创建文件夹

os.rmdir(path)

删除空文件夹,不能递归删除

os.removedirs()

可以递归删除空文件夹

os.remove(path)

删除文件

os.rename(src,dst)

将src重命名为dst,不能递归

os.system()

执行操作系统中的命令

os.path.abspath()

将相对路径转化为绝对路径

os.path.basename()

获取路径中的主体部分(就是最后一部分)

os.path.dirname()

获取路径中的除主体部分的部分(路径部分)

os.path.join()

连接多个路径,组成一个新的路径

os.path.split()

拆分路径,拆分成路径部分和主体部分,返回路径部分和主体部分组成的元组

os.path.splitext()

拆分路径,把文件后缀名拆分出来,返回文件名和后缀组成的元组

os.path.getsize(filename)

获取文件的大小

os.path.isdir(s)

检测s是否是一个文件夹,是否存在

os.path.isfile(path)

检测是否是一个文件,是否存在

os.path.exists(path)

检测路径是否存在

os.path.samefile(f1,f2)

检测两个存在的路径是否指向同一个目标位置

高阶文件操作模块 shutil

  import shutil

shutil.copy(src=‘文件来源路径’,dst=‘目标路径’)

复制文件到指定目录中

shutil.copy2()

复制文件到指定目录中,但保留了原文件的信息(操作时间和权限等)

shutil.copyfile(src, dst)

拷贝文件的内容(打开文件,读取文件,写入到新文件)

shutil.copytree(src, dst)

可以把整个目录结构和文件全部拷贝到指定目录中,但目标目录必须不存在

shutil.rmtree(path)

删除整个文件夹

shutil.move(src, dst, copy_function=copy2)

递归移动文件或文件夹到指定目录

shutil.make_archive(“创建的压缩文件名称”,“指定的压缩格式zip or tar”,“要压缩的文件路径”,“压缩文件的路径”)

压缩文件

压缩模块 zipfile

 import zipfile
  with zipfile.ZipFile('路径包名','模式:w r a x') as myzip:
        myzip.extractall(path,pwd)
        # > 解压全部到指定目录
        myzip.extract()
        # > 解压一个到指定目录

时间模块 time

 import time

time.time()

获取当前系统时间戳,表示从1970年1月1日0时0分0秒到现在的一个秒数,目前可以计算到2038年

print(time.time())

# 1591927877.4522622

time.ctime([指定时间]

获取当前电脑或指定时间的时间字符串

print(time.ctime())
print(time.ctime(1591927877.4522622))

# Fri Jun 12 10:14:01 2020
# Fri Jun 12 10:11:17 2020

time.localtime(int类型时间戳)

获取当前电脑系统或指定时间的时间元组,可以通过类似键值对的操作获取相应的时间信息

 print(time.localtime())
 print(time.localtime(1591927877.4522622))
 res = time.localtime()
 print(res.tm_year)
 
 # time.struct_time(tm_year=2020, tm_mon=6, tm_mday=12, tm_hour=10, tm_min=16, tm_sec=12, tm_wday=4, tm_yday=164, tm_isdst=0)
 # time.struct_time(tm_year=2020, tm_mon=6, tm_mday=12, tm_hour=10, tm_min=11, tm_sec=17, tm_wday=4, tm_yday=164, tm_isdst=0)
 # 2020

time.strftime(‘format=格式’[,t])

格式化时间

> 格式:
          
         %y  无世纪年份 [0,99]
         %Y  有世纪年份
         %m  月份 [01,12].
         %d  天 [01,31].
         %H  24小时制 [00,23].
         %M  分钟 [00,59].
         %S  秒 [00,61].
         %I  12小时制 [01,12].
         %p  AM or PM.
         %w  星期 [0(周日),6]

    print(time.strftime('%H:%M:%S'))
    res = time.localtime()
    print(time.strftime('%Y-%m-%d %H:%M:%S',res))
    
    # 10:28:48
    # 2020-06-12 10:28:48

time.strptime(str,format=)

和strftime相反

print(time.strptime('2020-06-12 10:28:48','%Y-%m-%d %H:%M:%S'))

# time.struct_time(tm_year=2020, tm_mon=6, tm_mday=12, tm_hour=10, tm_min=28, tm_sec=48, tm_wday=4, tm_yday=164, tm_isdst=-1)

time.sleep(秒)

在给定的秒数内暂停调用线程的执行

time.perf_counter()

返回性能计数器的值(以小数秒为单位)

  start = time.perf_counter()
  a=1
  b=2
  print(a+b)
  time.sleep(5)
  end=time.perf_counter()
  print(end-start)
  
  # 3
  # 5.0005983

日历模块 calendar

  import calendar

calendar.monthrange(year=,month=)

(当前月份的第一天是周几,当前月的天数)

res = calendar.monthrange(2020,4)
print(res)

# (2, 30)

参考官方文档

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值