Python—常用包的介绍

一. calendar


#calendar
#跟日历相关的模块
#1.
import calendar
cal = calendar.calendar(2019,l = 0,c = 5)
#print(cal)

#参数,
# w:每个日期之间间隔的字符串
# l:每周所占用的行数
# c:每个月之间间隔的字符数

#2.isleap:判断年份是否是闰年

print(calendar.isleap(2016))


#3.获取指定年份内闰年的个数
print(calendar.leapdays(1999,2019))


#4.month:获取某个月娥的日历字符串
m7 = calendar.month(2019,7)
print(m7)


#5.monthrange:获取一个月是周几开始的以及 这个月的天数
#返回的是一个元组、
#0-6 表示周一至周日
m = calendar.monthrange(2019,7)
print(m)
#也可以这样输出
w,t = calendar.monthrange(2019,7)
print(w,t)


#6.打印年份月份的另一种方式
#prcal
#prmonth
#calendar.prcal(2019)
calendar.prmonth(2019,7)


#7.获取周几
day = calendar.weekday(2019,7,11)
print(day)

二.datetime

#datetime模块
#提供日期和时间的运算和表示
import datetime
import time

#1.date
dt = datetime.date(2019,7,11)
print(dt)
print(dt.year)
print(dt.month)
print(dt.day)
#这样就可以将时间的要素分开使用


#2.datetime
from datetime import datetime
#这是一个类
#类方法:
# today()
# now()
# utcnow()
# fromtimestamp:从时间戳中返回时间
dt = datetime(2019, 7 ,11)
print(dt.today())
print(dt.now())
print(dt.utcnow())
print(dt.fromtimestamp(time.time()))


#3.timedelta
from datetime import datetime,timedelta
t1 = datetime.now()
td = timedelta(hours = 1)
print(t1+td)
# 2019-07-11 10:43:59.438223
# 2019-07-11 11:43:59.438222
#从结果看出是增加了一个小时


#4.timeit:用于时间的测量和比较
def p():
    time.sleep(1)
t1 = time.time()
p()
print(time.time()-t1)


import timeit
#接下来我们比较两种列表生成方式的速度
c = '''
sum = []
for i in range(1000):
    sum.append(i)
'''
#number设置执行的次数
t1 = timeit.timeit(stmt="[i for i in range(1000)]",number=10000)
t2 = timeit.timeit(stmt = c,number = 10000)
print(t1)
print(t2)
# 0.31758621
# 0.603282627
#我们可以发现用列表生成式进行生成列表更快

s = '''
def dot(num):
    for i in range(num):
        print(i)
'''
# 执行dot(num)
# setup负责把环境变量准备好
# 实际相当于给timeit创造了一个小环境
# 在创作的小环境中, 代码执行的顺序大致是
t = timeit.timeit("dot(num)",setup=s+"num = 3",number=10)
print(t)

**

三.time

#time 模块 :时间戳
#一个时间的表示,根据不同的语言可以使整数或者浮点数
#从1970 1月1日 0时0分开始到现在经历的秒数

#UTC时间
#中国是 UTC+8 东八区
#
# 夏令时
# - 夏令时就是在夏天的时候将时间调快一小时,本意是督促大家早睡早起节省蜡烛! 每天变成25个小时,本质没变还是24小时
#
# 时间元组
# - 一个包含时间内容的普通元组
#
#
#    索引      内容    属性            值
#
#     0       年       tm_year     2015
#     1       月       tm_mon      1~12
#     2       日       tm_mday     1~31
#     3       时       tm_hour     0~23
#     4       分       tm_min      0~59
#     5       秒       tm_sec      0~61  60表示闰秒  61保留值
#     6       周几     tm_wday     0~6
#     7       第几天    tm_yday     1~366
#     8       夏令时    tm_isdst    0,1,-1(表示夏令时)

import time

#1.timezone:打印当前的时区和UTC相差的秒数,在没有夏令时差距的秒数
#alzone:有夏令时的秒数
#daylight:测试当前是否是夏令时状态
print(time.timezone)
print(time.daylight)


#2.得到时间戳
t= time.time()
print(t)


#3.localtime:得到当前的时间
#mktime:使用元祖获得相应的时间戳
t= time.localtime()
print(t)
t1= time.mktime(t)
print(t1)


#4.asctime:返回元组的正常字符串形式
#ctime:类似
t = time.asctime()
tt = time.ctime()
print(t)
print(tt)


#5.clock:cpu的时间,一般就是计算程序执行的时间
def p():
    time.sleep(2)
t0 = time.clock()
p()
t1 = time.clock()
print(t1-t0)


#6.sleep:使程序进入睡眠,n秒后继续
for i in range(10):
    print(i)
    time.sleep(0.1)


#7.strftime:将时间元组格式化为我们想要的格式
t = time.localtime()
ft = time.strftime('%Y{y}%m{m}%d{d} %H{h}%M{f}%S{s}').format(y='年', m='月', d='日', h='时', f='分', s='秒')
print(t)


四.zip

import zipfile

#1.zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
# 创建一个ZipFile对象,表示一个zip文件。参数file表示文件的路径或类文件对象(file-like object)
# 参数mode指示打开zip文件的模式,默认值为’r’,表示读已经存在的zip文件,也可以为’w’或’a’,
# ’w’表示新建一个zip文档或覆盖一个已经存在的zip文档,’a’表示将数据附加到一个现存的zip文档中。
# 参数compression表示在写zip文档时使用的压缩方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。
# 如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。
zf = zipfile.ZipFile("/home/tlxy/tuling.zip")


# 2.ZipFile.getinfo(name):
#  获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。将在下面 具体介绍该对象。

rst = zf.getinfo("dana.haha")
print(rst)
#打印的是压缩包内,某个文件的信息


# 3.ZipFile.namelist()
#  获取zip文档内所有文件的名称列表。
nl = zf.namelist()
print(nl)


# 4.ZipFile.extractall([path[, members[, pwd]]])
#  解压zip文档中的所有文件到当前目录。参数members的默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。
rst = zf.extractall("/home/tlxy/dana")

五.os

#os:操作系统相关
#主要是文件操作
# os:操作系统目录相关
# os.path:系统路径相关操作
# shutil:高级文件操作,目录树操作,文件赋值,删除,移动
# 路径:
# 绝对路径
# 相对路径
import  os

#1.getcwd():获取当前的工作目录
mydir = os.getcwd()
print(mydir)


#2.chdir:修改当前的工作目录
#os.chdir('D:\Python\Python项目')
mydir = os.getcwd()
print(mydir)


#3.listdir:打印目录下所有的文件名称,包括隐藏文件
list = os.listdir()
print(list)
#不给路径,默认的是当前文件所在的目录


#4.makedirs:递归创建文件夹
rst = os.makedirs("11")
print(rst)#无返回值,给出的是None
#不给出路径就在当前目录下创建


#5.system:执行系统shell指令
#ls:列出当前文件夹所有文件的系统命令
rst = os.system("ls")
print(rst)
#可以看出最后生成的是一堆乱码

#在当前目录下创建一个文件
rst = os.system("touch weiwei")
print(rst)


#6.getenv:获取环境变量
rst= os.getenv("PATH")
print(rst)

#7.exit()退出当前程序

##值部分
# os.curdir: curretn dir,当前目录
# os.pardir: parent dir, 父亲目录
# os.sep: 当前系统的路径分隔符
# windows: "\"
# linux: "/"
# os.linesep: 当前系统的换行符号
# windows: "\r\n"
# unix,linux,macos: "\n"
# os.name: 当前系统名称
# windows: nt
# mac,unix,linux: posix

print(os.curdir)
print(os.pardir)
print(os.sep)
print(os.linesep)
print(os.name)

#注意:
# # 在路径相关的操作中,不要手动拼写地址,因为手动拼写的路径可能不具有移植性
path = "/home/tlxy" + "/" + "dana"
print(path)



**#os.path** 跟路径相关的操作

import os.path as op

#1.abspath:将路径转换成绝对路径
#  "."表示当前目录
#  ".."表示父目录
absp = op.abspath(".")
print(absp)


#2.basename:从路径中获取文件名那部分
#返回值是文件名字符串
bn = op.basename("D:\Python\Python项目\基础学习\7-11")
print(bn)


#3.join :将多个路径合成一个路径、
#格式:os.path.join(路径1,路径2.....)
#返回值:合成后的文件路径
a = "home\python"
b ="wewei.ahahha"
c= op.join(a,b)
print(c)


# 4.split() 将路径切割为文件夹部分和当前文件部分
#  格式:os.path.split(路径)
#  返回值:路径和文件名组成的元组
t = op.split("/home/tlxy/dana.haha")
print(t)
d,p = op.split("/home/tlxy/dana.haha")
print(d, p)


#以下两种情况书写路径时注意使用双斜杠
#5.isdir:检测是否是目录
e = op.isdir("D:\\Python\\Python项目\\基础学习\\7-11")
print(e)


#6.exists:检测是否是文件或者目录是否存在
e = op.exists("D:\\Python\\Python项目\\基础学习\\7-11")
print(e)


六.shutil

import shutil

#1.copy:复制文件
#格式:shutil.copy(原路径,目标路径)
#返回值:返回的是目标路径
#拷贝的同时可以给目标路径重命名
rst = shutil.copy("","")
print(rst)


#2.copy2:复制文件,保留元数据
#其他特性与copy类似
#copy与copy2 的区别在于,copy2在复制的时候尽量保留元数据


#3.copyfile:将一个文件中的内容复制到另一个文件
#格式:shutil.copyfile("原路径","目标路径")


#4.move:移动文件/文件夹
#  格式:shutil.move(源路径,目标路径)
#  返回值:目标路径!
 rst  = shutil.move("/home/tlxy/dana.haha", "/home/tlxy/dana")
 print(rst)

 
##压缩和归档
# 归档: 把多个文件或者文件夹合并到一个文件当中
# 压缩: 用算法把多个文件或者文件夹无损或者有损合并到一个文件当中


# make_archive() 归档操作
# 格式:shutil.make_archive('归档之后的目录和文件名','后缀','需要归档的文件夹')
#  返回值:归档之后的地址

# 是想得到一个叫做tuling.zip的归档文件
 rst = shutil.make_archive("/home/tlxy/tuling", "zip", "/home/tlxy/dana")
 print(rst)
#这样就可以在目录下发现一个压缩包

# unpack_archive() 解包操作
# 格式:shutil.unpack_archive('归档文件地址','解包之后的地址')
# 返回值:解包之后的地址





七.random


import random
#生产随机数
#所有的随机模块都是伪随机

#1.random:生成0-1之间的小数
print(random.random())


#2.choice:随机返回序列中的某个数
list = [i for i in range(10)]
print(list)
print(random.choice(list))


#3.shuffle:随机打乱原来列表,不生成新的列表
l1 = [ i for i in range(10)]
print(l1)
random.shuffle(l1)
print(l1)


#4.randint[a,b]:随机生成a-b之间的整数,a,b均可以取到
print(random.randint(1,100))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值