经常使用模块
calendar
# 使用须要先导入
import calendar # calendar: 获取一年的日历字符串 # 参数 # w = 每一个日期之间的间隔字符数 # l = 每周所占用的行数 # c = 每月之间的间隔字符数
cal = calendar.calendar(2017) print(type(cal)) print(cal) cal = calendar.calendar(2017, l=0, c=5) print(cal)
# isleap: 判断某一年是否闰年
calendar.isleap(2000)
# leapdays: 获取指定年份之间的闰年的个数
calendar.leapdays(2001, 2018)
# month() 获取某个月的日历字符串 # 格式:calendar.month(年,月) # 回值:月日历的字符串
m3 = calendar.month(2018, 3) print(m3)
# monthrange() 获取一个月的周几开始即和天数 # 格式:calendar.monthrange(年,月) # 回值:元组(周几开始,总天数) # 注意:周默认 0 -6 表示周一到周天
w,t = calendar.monthrange(2017, 3) print(w) print(t)
# monthcalendar() 返回一个月天天的矩阵列表 # 格式:calendar.monthcalendar(年,月) # 回值:二级列表 # 注意:矩阵中没有天数用0表示
m = calendar.monthcalendar(2018, 3) print(type(m)) print(m)
# prmonth() 直接打印整个月的日历 # 格式:calendar.prmonth(年,月) # 返回值:无
calendar.prmonth(2018, 3)
# weekday() 获取周几 # 格式:calendar.weekday(年,月,日) # 返回值:周几对应的数字
calendar.weekday(2018, 3, 26)
time模块
时间戳
- 一个时间表示,根据不一样语言,能够是整数或者浮点数 - 是从1970年1月1日0时0分0秒到如今经历的秒数 - 若是表示的时间是1970年之前或者太遥远的将来,可能出现异常 - 32位操做系统可以支持到2038年
UTC时间
- UTC又称为世界协调时间,以英国的格林尼治天文所在地区的时间做为参考的时间,也叫作世界标准时间。 - 中国时间是 UTC+8 东八区
时间元组
- 一个包含时间内容的普通元组 索引 内容 属性 值 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 # 获得时间戳
time.time()
# localtime, 获得当前时间的时间结构 # 能够经过点号操做符获得相应的属性元素的内容
t = time.localtime() print(t.tm_hour)
# ctime: 获取字符串化的当前时间
t = time.ctime() print(type(t)) print(t)
# strftime:将时间元组转化为自定义的字符串格式
''' 格式 含义 备注 %a 本地(locale)简化星期名称 %A 本地完整星期名称 %b 本地简化月份名称 %B 本地完整月份名称 %c 本地相应的日期和时间表示 %d 一个月中的第几天(01 - 31) %H 一天中的第几个小时(24 小时制,00 - 23) %I 一天中的第几个小时(12 小时制,01 - 12) %j 一年中的第几天(001 - 366) %m 月份(01 - 12) %M 分钟数(00 - 59) %p 本地 am 或者 pm 的相应符 注1 %S 秒(01 - 61) 注2 %U 一年中的星期数(00 - 53 星期天是一个星期的开始)第一个星期天以前的全部天数都放在第 0 周 注3 %w 一个星期中的第几天(0 - 6,0 是星期天) 注3 %W 和 %U 基本相同,不一样的是 %W 以星期一为一个星期的开始 %x 本地相应日期 %X 本地相应时间 %y 去掉世纪的年份(00 - 99) %Y 完整的年份 %z 用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 表明十进制的小时数,M 表明十进制的分钟数) %% %号自己 '''
# 把时间表示成, 2018年12月26日 21:05
t = time.localtime() ft = time.strftime("%Y年%m月%d日 %H:%M" , t) print(ft)
datetime模块
# datetime常见属性 # datetime.date: 一个理想和的日期,提供year, month, day属性
dt = datetime.date(2018, 3,26) print(dt) print(dt.day) print(dt.year) print(dt.month) # datetime.time: 提供一个理想和的时间, 居于哦hour, minute,sec,microsec等内容 # datetime.datetime: 提供日期跟时间的组合 # datetime.timedelta: 提供一个时间差,时间长度
# datetime.datetime
from datetime import datetime # 经常使用类方法: # today: # now # utcnow # fromtimestamp: 从时间戳中返回本地时间
dt = datetime(2018, 12, 26) print(dt.today()) print(dt.now()) print(dt.fromtimestamp(time.time()))
# datetime.timedelta # 表示一个时间间隔
from datetime import datetime, timedelta t1 = datetime.now() print( t1.strftime("%Y-%m-%d %H:%M:%S")) # td表示以小时的时间长度
td = timedelta(hours=1) # 当前时间加上时间间隔后,把获得的一个小时后的时间格式化输出
print( (t1+td).strftime("%Y-%m-%d %H:%M:%S"))
os - 操做系统相关
- 跟操做系统相关,主要是文件操做
- 于系统相关的操做,主要包含在三个模块里
- os, 操做系统目录相关
- os.path, 系统路径相关操做
- shutil, 高级文件操做,目录树的操做,文件赋值,删除,移动
- 路径:
- 绝对路径: 老是从根目录上开始
- 相对路径: 基本以当前环境为开始的一个相对的地方
os 模块
import os # getcwd() 获取当前的工做目录 # 格式:os.getcwd() # 返回值:当前工做目录的字符串 # 当前工做目录就是程序在进行文件相关操做,默认查找文件的目录
mydir = os.getcwd() print(mydir)
# chdir() 改变当前的工做目录 # change directory # 格式:os.chdir(路径) # 返回值:无
os.chdir('/home/tlxy') mydir = os.getcwd() print(mydir)
# listdir() 获取一个目录中全部子目录和文件的名称列表 # 格式:os.listdir(路径) # 返回值:全部子目录和文件名称的列表
ld = os.listdir() print(ld)
# makedirs() 递归建立文件夹 # 格式:os.makedirs(递归路径) # 返回值:无 # 递归路径:多个文件夹层层包含的路径就是递归路径 例如 a/b/c...
rst = os.makedirs("dana") print(rst)
#getenv() 获取指定的系统环境变量值 # 相应的还有putenv # 格式:os.getenv('环境变量名') # 返回值:指定环境变量名对应的值
rst = os.getenv("PATH") print(rst)
# exit() 退出当前程序 # 格式:exit() # 返回值:无
值部分
- os.curdir: curretn dir,当前目录
- os.pardir: parent dir, 父亲目录
- os.sep: 当前系统的路径分隔符
- os.linesep: 当前系统的换行符号
- windows: "\r\n"
- unix,linux,macos: "\n"
- os.name: 当前系统名称
- windows: nt
- mac,unix,linux: posix
os.path 模块, 跟路径相关的模块
import os.path as op # abspath() 将路径转化为绝对路径 # abselute 绝对 # 格式:os.path.abspath('路径') # 返回值:路径的绝对路径形式
# linux中 # . 点号,表明当前目录 # .. 双点,表明父目录
absp = op.abspath(".") print(absp)
# basename() 获取路径中的文件名部分 # 格式:os.path.basename(路径) # 返回值:文件名字符串
bn = op.basename("/home/tlxy") print(bn) bn = op.basename("/home/tlxy") print(bn)
# join() 将多个路径拼合成一个路径 # 格式:os.path.join(路径1,路径2....) # 返回值:组合以后的新路径字符串
bd = "/home/tlxy" fn = "dana.haha" p = op.join(bd, fn) print(p)
# split() 将路径切割为文件夹部分和当前文件部分 # 格式:os.path.split(路径) # 返回值:路径和文件名组成的元组
t = op.split("/home/tlxy/dana.haha") print(t) d,p = op.split("/home/tlxy/dana.haha") print(d, p)
# isdir() 检测是不是目录 # 格式:os.path.isdir(路径) # 返回值:布尔值
rst = op.isdir("/home/tlxy/dana.haha") rst
# exists() 检测文件或者目录是否存在 # 格式:os.path.exists(路径) # 返回值:布尔值
e = op.exists("/home/tlxy/haha") e
shutil 模块
import shutil # copy() 复制文件 # 格式:shutil.copy(来源路径,目标路径) # 返回值:返回目标路径 # 拷贝的同时,能够给文件重命名
rst = shutil.copy("/home/tlxy/dana.haha", "/home/tlxy/haha.haha") print(rst)
# copyfile()将一个文件中的内容复制到另一个文件当中 # 格式:shutil.copyfile('源路径','目标路径') # 返回值:无
rst = shutil.copyfile("dana.haha", "haha.haha") print(rst)
# move() 移动文件/文件夹 # 格式:shutil.move(源路径,目标路径) # 返回值:目标路径!
rst = shutil.move("/home/tlxy/dana.haha", "/home/tlxy/dana") print(rst)
归档和压缩
- 归档: 把多个文件或者文件夹合并到一个文件当中
- 压缩: 用算法把多个文件或者文件夹无损或者有损合并到一个文件当中
# make_archive() 归档操做 # 格式:shutil.make_archive('归档以后的目录和文件名','后缀','须要归档的文件夹') # 返回值:归档以后的地址
#help(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 # random() 获取0-1之间的随机小数 # 格式:random.random() # 返回值:随机0-1之间的小数
print(random.random())
# choice() 随机返回序列中的某个值 # 格式:random.choice(序列) # 返回值:序列中的某个值
l = [str(i)+"haha" for i in range(10)] print(l) rst = random.choice(l) print(rst)
# shuffle() 随机打乱列表 # 格式:random.shuffle(列表) # 返回值:打乱顺序以后的列表
l1 = [i for i in range(10)] print(l1) random.shuffle(l1) print(l1)
# randint(a,b): 返回一个a到b之间的随机整数,包含a和b
print(random.randint(0,100))