时间模块
time使用
方法 | 功能 |
---|---|
t = time.time() | 获得一个时间戳(时间戳从1970年1月1日开始到现在的秒数) |
st = time.localtime(t) | 获得一个时间对象,t可以是某个时间戳,不写默认为当前时间 |
time.strftime(’%Y-%m-%d %H:%M:%S’, st) | 获得一个固定格式时间格式 如:2019-08-12 19:24:40 |
time.sleep(sec) | 程序停止sec秒(这是time里面经常用的) |
time模块获取一个固定格式的时间太麻烦了,所以使用datetime模块更加简单。
datetime
datetime里面的类
- date 日期
- time 时间
- timedelta 时间差
- datetime 日期时间
方法 | 功能 |
---|---|
datetime.now() | 获取当前时间 -》 2019-08-12 19:35:32.510859 |
datetime.today() | 获取当前时间 -》 2019-08-12 19:35:32.510859 功能一样 |
date.today() | 获得今天的日期(没有小时)2019-08-12 |
dt = datetime.now() tdt = timedelta(minutes=30) print(dt + tdt) tdt = timedelta(days=1) print(dt - tdt) | 时间加减 输出:2019-08-12 20:13:26.459245 2019-08-11 19:43:26.459245 |
这里面的time和time模块一样。。。
日历模块 calendar
获得某年的日历、获得某月的日历,这样家里就不用买日历了,,,哈哈哈
import calendar
方法 | 功能 |
---|---|
print(calendar.calendar(2019)) | 输出2019年所有月份的日历 |
print(calendar.month(2019, 8)) | 输出2019年8月的日历 |
print(calendar.weekday(2019, 8, 12)) | # 星期几 星期一从0开始的 |
在此奉献2019年的日历
数学模块
数学模块一般使用的不算太多,但也是偶尔能用到
方法 | 功能 |
---|---|
ceil | 取大于等于x的最小的整数值,如果x是一个整数,则返回x |
copysign | 把y的正负号加到x前面,可以使用0 |
cos | 求x的余弦,x必须是弧 |
degrees | 把x从弧度转换成角度 |
e | 表示一个常量 |
exp | 返回math.e,也就是2.71828的x次方 |
expm1 | 返回math.e的x(其值为2.71828)次方的值减1 |
fabs | 返回x的绝对值 |
factorial | 取x的阶乘的值 |
floor | 取小于等于x的最大的整数值,如果x是一个整数,则返回自身 |
fmod | 得到x/y的余数,其值是一个浮点数 |
frexp | 返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围 |
fsum | 对迭代器里的每个元素进行求和操作 |
gcd | 返回x和y的最大公约数 |
hypot | 如果x是不是无穷大的数字,则返回True,否则返回False |
isfinite | 如果x是正无穷大或负无穷大,则返回True,否则返回False |
isinf | 如果x是正无穷大或负无穷大,则返回True,否则返回False |
isnan | 如果x不是数字True,否则返回False |
ldexp | 返回x*(2**i)的值 |
log | 返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base) |
log10 | 返回x的以10为底的对数 |
log1p | 返回x+1的自然对数(基数为e)的值 |
log2 | 返回x的基2对数 |
modf | 返回由x的小数部分和整数部分组成的元组 |
pi | 数字常量,圆周率 |
pow | 返回x的y次方,即x**y |
radians | 把角度x转换成弧度 |
sin | 求x(x为弧度)的正弦值 |
sqrt | 求x的平方根 |
tan | 返回x(x为弧度)的正切值 |
trunc | 返回x的整数部分 |
ps:在math里面没有四舍五入的函数,但是在系统函数里面有,同时系统函数与math里面都有绝对值函数。。。
看着很多,但是现用现查即可,不用记住。
随机数模块
random这是一个常用的模块,非常常用
方法 | 功能 |
---|---|
randint(x,y) | 从x到y中(包括y)任选一个数 ,[x,y] |
randint(a,b) | —>[a,b] |
randrange(a,b) | —> [a,b) |
random() | —>小数 [0,1) |
choice() | 随机从可迭代对象里 |
shuffle(seq) | –> 打乱顺序seq的顺序 |
import random
print(random.randrange(1, 10))
print(random.randint(1, 10))
print(random.random()) # [0,1)
print(random.choice('ancefhdjkflg'))
list1 = [1, 2, 3, 4, 5, 6, 7, 8]
random.shuffle(list1)
print(list1)
结果:
5
9
0.7711498372651929
l
[3, 8, 4, 1, 6, 7, 5, 2]
os模块
文件夹操作模块
方法 | 功能 |
---|---|
mkdir() | 创建文件夹 |
rmdir() | 删除文件夹,只能是空的文件夹 |
os.listdir(path) | 查看path下的内容,并以列表的形式返回 |
os.chdir(‘c:/考试1’) | 切换目录 |
os.getcwd() | 获取当前文件的路径 (绝对路径) |
os.getpid() | get process id 获取当前的进程id |
os.getppid() | get parent process id 获取父进程id |
非空文件夹删除
import shutil
shutil.rmtree(r’C:\bank_system’) 非空文件夹的删除
# 也可以递归删除文件
def delAll(path):
if os.path.isdir(path):
files = os.listdir(path) # ['a.doc', 'b.xls', 'c.ppt']
# 遍历并删除文件
for file in files:
p = os.path.join(path, file)
if os.path.isdir(p):
# 递归
delAll(p)
else:
os.remove(p)
# 删除文件夹
os.rmdir(path)
else:
os.remove(path)
方法 | 功能 |
---|---|
os.environ | 获取系统的环境变量 |
os.name | nt – windows \r\n |
os.path.abspath(‘t1/file01.py’) | # 获取绝对路径 |
os.path.isabs(‘t1/file01.py’) | # 判断所给的路径是否是一个绝对路径 |
os.path.isfile(‘t1/file01.py’) | # True 判断是否是文件 |
os.path.isdir(‘t1/file01.py’) | # False 判断是否是文件夹 |
os.path.exists(‘t1/file02.py’) | # False 判断是否存在文件夹或者文件 |
os.path.join(r’c:\foo’, ‘a.txt’) | 将两个拼接 |
os.path.split(r’c:\foo\a.txt’) | 经文件切割出来,切出来是个元组 |
os.path.getsize(r’C:\images\desk_background.jpg’) | # 单位字节 |
os.path.getatime(r’C:\images\desk_background.jpg’) | # 访问时间 |
os.path.getctime(r’C:\images\desk_background.jpg’) | # 创建时间 windows |
os.path.getmtime(r’C:\images\desk_background.jpg’) | # 修改时间 |