python-常用模块-21

# 常用模块
-calendar
-time
-datetime
-timeit
-os
-shutil
-zip
-math
-string
上述所有模块在使用时要先导入,但string是特例


#calendar
-跟日历相关的模块
import calendar
#参数:w为日期间隔字符,l为周间隔字符,c为月间隔字符
cal = calendar.calendar(2017)
print(cal)

cal = calendar.calendar(2017,l=0,c=5)
print(cal)

 

#isleap:判断某一年是否闰年
calendar.isleap(2018)

 

#leapdays:获取指定年份之间的闰年的个数
calendar.leapdays(1998,2018)

 

#month() 获取某个月的日历字符串
m2 = calendar.month(2018,3)
print(m2)

 

#monthcalendar()返回一个月每天的矩阵列表
m3 = calendar.monthcalendar(2018,3)

 

#prcal()直接打印日历
calendar.prcal(2018)

 

#prmonth()直接打印整个月的日历
calendar.prmonth()

weekday()获取周几
calendar.weekday(2018,3,26)

 

# time模块
##时间戳
  -一个时间表示方法,根据不同语言,可以是整数或者浮点数
  -是从1970年1月1日0时0分0秒到现在所经历的的秒数
  -如果表示的时间是1970年以前的或者未来,可能出现异常
  -32位系统能够支持到2038年

##UTC时间
  -UTC世界协调时间
  -中国时间是UTC+8 东区
##夏令时
  -在夏天时将时间调快1小时

##时间元组
  -一个包含时间内容的普通元组


# 需要导入
import time
#时间模块的属性

#timezone:当前时区和UTC时间相差的秒数,无夏令时的情况下的间隔,东八区的是-28800
#altzone: 跟上述一样,但是有夏令时
#daylight:测试当前是否是夏令时时间状态,0表示是
print(time.timezone)

#得到时间戳
time.time()

#localtime,得到当前时间的时间结构
#可以通过点号操作符得到相应的属性内容
t = time.localtime()
print(t.tm_hour)

#asctime() 返回元组的正常字符串化之后的时间格式
#格式:time.asctime(时间元组)
t = time.localtime()
tt = time.asctime(t)
print(tt)

#ctime:获取字符串化的当前时间
t = time.ctime()
print(t)

#clock:获取cpu时间,python3版本过高可能无法调用

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

#strftime:将时间元组转化为自定义的字符串格式
#把时间表示成,2018年3月26日 21:05
t = time.localtime()
ft = time.strftime(“%Y年%m月%d日 %H:%M”,t)
print(ft)

#datetime模块
-datetime提供日期和时间的运算和表示
import datetime
#datetime常见属性

-datetime.date:一个理想化的日期,提供年月日
print(datetime.date(2018,8,10))

-datetime.time:提供一个理想化的时间,提供年月日时分秒

-datetime.datetime:提供日期跟时间的组合
from datetime import datetime
-常用类方法:today now utcnow fromtimestamp
dt = datetime(2018,8,10)
pring(dt.today())

-datetime.timedelta:提供一个时间差,时间长度,表示时间间隔
from datetime import portdateime.timedelta
t1 = datetime.now()
print(t1.strftime())
-td表示以小时计算时间长度
td = timedelta(hours=1)
-当前时间+一小时,得到一小时后的时间
print((t1+td).strftime())

#timeit:时间测量工具
#测量程序运行时间间隔
c = '''
sum =[]
for i in range(1000):
  sum.append(i)
'''

-利用timeit调用代码,执行100000此,查看运行时间
t = timeit.timeit(stmt = "[i for i in range(1000)]",number = 100000)

-测量代码c执行100000此运行时间
t2 = timeit.timeit(stmt = c,number = 100000)

print(t1)
print(t2)

#timeit 可以执行一个函数,来测算函数的执行时间
def doIt():
  num = 3
  for i in range(num):
    print("Repeat for {0}".format(i))
#执行函数,重复10次
t = timeit.timeit(stmt=doIt,num=10)
print(t)

 

#OS-操作系统相关
- 跟操作相关,主要是文件操作
- 包含三个模块
  -os 操作系统目录相关
  -os.path 系统路径相关操作
  -shutil 高级文件操作,目录树的操作,文件赋值,删除,移动
- 路径:
  -绝对路径
  -相对路径

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

#chdir() 改变当前的工作目录
#格式: os.chdir(路径)
os.chdir("c:\...")
mydir = os.getcwd()
print(mydir)

#listdir() 获取一个目录中(文件夹)所有的文件
#格式: os.listdir(路径)
ld = os.listdir(c\:.....)
print(ld)

#makedirs() 递归创建文件夹
#格式: os.makedirs(递归路径)
rst = os.makedirs("siqi")
print(rst)

##Log 模块资料
参考自 "https://blog.csdn.net/xsj_blog/article/details/51971964" 在此表示感谢


#system() 运行系统shell命令
#格式:os.system(系统命令)
#在当前目录下创建一个pangqi.text的文件
rst = os.system("touch pangqi.text")
print(rst)
#一般推荐使用subprocess代替


#ls 列出当前文件和文件夹的系统命令
rst = os.system("ls")
print(rst)


#getenv() 获取指定的系统环境变量值
#格式: os.getenv(“环境变量名”)
rst = os.getenv("path")
print(rst)

#exit() 退出当前程序
#格式: exit()


#值
-os.cuedir:当前目录
-os.pardir:父目录
-os.sep:当前系统的路径分隔符
-os.linesep:当前系统的换行符(windows:“\r\n”)
-os.name: 当前系统名称


##os.path 模块,跟路径相关的模块
import os.path as op
#abspath() 将路径转化为绝对路径(absolute)
格式:os.path.abspath

#linux “.”点号表示当前目录
absp = op.abspath(".")
print(absp)

#basename() 获取路径中的文件名
格式:os.path.basename(路径)
bn = op.basename("路径")
print(bn)

#join()将多个路径合成一个路径
格式:os.path.join(路径1,路径2,等)
bd = "路径1"
sd = "路径2"
p = op.join(bd,sd)
print(p)

#split() 将路径切割为文件夹部分和当前文件部分
格式:os.path.split(路径)
t = op.split("路径")
print(t)

d,p = op.split("路径")
print(d,p)

#isdir() 判断是否为目录
格式:os.path.isdir(路径)
rst = op.isdir("路径")
print(rst)

## shutil 模块
import shutil
#copy() 复制文件
格式:shutil.copy(来源路径,目标路径)
rst = shutil.copy("来源路径",“目标路径”)
print(rst)

#copy2()与copy()的区别是,copy2尽可能保留源文件

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

#move() 移动文件/文件夹


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

#make_archive()归档操作
格式:shutil.make_archive("归档之后的目录和文件名","后缀","需要归档的文件夹")
rst = shutil.make_archive("归档之后文件名","zip","需要归档的文件夹")
print(rst)

#unpack_archive() 解包


##zip-压缩包
-模块名 zipfile
import zipfile
zf = zipfile.ZipFile("绝对路径xx.zip")

#zipfile.getinfo(name):获取zip内指定文件的信息
rst = zf.getinfo("文件名")
print(rst)

#zipfile.namelist()获取文件列表

#zipfile.extractall() 解压到当前目录


##random
-随机数
-所有的随机模块都是伪随机
import random
#random() 获取0-1之间的随机小数
格式:random.random()
print(random.random())

#choice() 随机选择序列中的某个值
格式:random.choice(序列)
l = [str[i]+"siqi" for i in range(10)]
rst = random.choice(l)
print(rst)

#shuffle() 随机打乱列表,原地打乱
格式:random.shuffle(列表)
random.shuffle(l)
print(l)

#print(random.randint(0,100))
随机生成一个整数

 

猜你喜欢

转载自www.cnblogs.com/houziaipangqi/p/9594303.html