python常用模块(一)
time模块常用
# 通常time模块打印时间有三种
import time
# 时间戳形式
print(time.time()) # 时间戳时从1970年1月1日开始计时的时间
# 格式化时间(需要自己定义格式)
print(time.strftime(%Y-%m-%d %X)) # 年月日 时间
# 结构化时间
print(time.localtime()) # 以北京时间为准
print(time.gmtime()) # 以格林威治时间为准 与北京时间8小时时差
# 结构化时间转为格式化时间
struct_time = time.localtime()
print(time.strftime('%Y-%m-%d',struct_time))
# 结构化时间转为时间戳
print(time.mktime(struct_time))
# 格式化时间转为结构化时间
format_time = time.strftime('%Y-%m-%d %X')
print(time.striptime('2019-06-01 12:00:00','%Y-%m-%d %X'))
# 时间戳转化为结构化时间
stamp_time = time.time()
print(time.localtime(stamp_time))
# 掌握时间停滞方法
time.sleep() # 写秒数
datatime模块常用
import datetime
# 获取当地时间
now = datetime.datetime.now() # 打印出来完整的年月日时分秒 加上毫秒
# 对打印出来的时间进行加减
print(now + datetime.timedelta(days = 5)) # 默认修改为天
print(now + datetime.timedelta(5)) #加五天
print(now + datetime.timedelta(-5)) # 减五天
print(now + datetime.timedelta(hours = 5)) #可修改小时,分钟,秒. hours/minutes/secends
# 自定义修改时间
print(now.replace(year= 2010,month= 11, day = 22, hour = 4) # 全不可以自定义,不修改的部分就和现在的时间一致
os模块(*)
# os和操作系统相互交互,文件操作
import os
# 创建文件夹
os.mkdir('kkk')
# 删除多个空文件夹,会一直递归往上删除,直至删除所有空文件夹
os.removedirs(r'D:day 17bbcccddd')
# 删除一个空文件夹
os.rmdir(r'D:day 17bb')
# 列出文件夹内所有文件名和隐藏问件名
print(os.listdir(r'D:day 17bb'))
# 删除文件
os.remove(r'D:day 17bb est.py')
# 重命名文件
os.rename(r'D:day 17bb est.py',r'D:day 17bbjiba.py') # 原文件名改为新文件名
# 打印环境变量
print(os.environ)
# dirname 用在执行文件添加环境变量 (*)
print(os.path,dirname(r'D:day 17bb est.py'))
print(os,path,dirname(__file__))
# import sys
sys.path.append(r'D:day 17bb est.py') # 添加环境变量
# 判断文件是否存在
print(os.path.exis(r'D:day 17bb est.py')) # 返回布尔值
# 拼接文件路径,(因为系统不一样,文件路径的衔接也不相同)
print(os.path.join(r'D:day 17bb est','sb.py'))
# 计算文件大小 (*)
print(os.path.getsize(r'D:day 17bb est.py'))
# 打印文件夹下所有文件夹和文件
print(os.walk(r'D:day 9').__next__)
random模块
# 随机数模块
import random
print(random.random()) # 会打印0到1之间的随机小数,不包括0和1
# 打印[n,m]之间的数
print(random.randint(1,3)) # 闭区间
# 打印(n,m)之间的小数
print(random.uniform(1,3))
# 打印[n,m)之间的整数
print(random.randrange(1,3))
# 从容器中选择一个随机元素
print(random.choice([1000,'2',333,'ada'])
# 从容器中选择多个
print(random.sample([1,'w',32,'2','b'],2) # 从指定容器选择2个随机元素
# 将容器中的元素打乱
lis = [1,9,41,14,5,23,6,26,2]
random.shuffle(lis)
print(lis) # lis已被打乱
sys模块
# 与python交互
import sys
print(sys.argv) (**)
# Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数
# 获取解释器的版本
print(sys.hexversion)
# 获取当前文件导入模块的路径
print(sys.path) # 调用sys.stdout
# sys.stdout.write('123
') 类似print 但这是c写的
# print(sys.stdin.read(10))
def print(str, end = '
'):
str = str + end
sys.stdout.write('我是新的print
')
sys.stdout.write(str)
print('sdads') # 调用该手写的print 可以输出相应的字符串(其它格式还不行)
json和pickle模块
json模块和pickle将数据序列化保存数据,json格式其它与言也会有,所以可以跨平台传输数据
# json中只能写入python中的dict/list/str/int/float/bool/None
# pickle是python独有的,可存任意类型数据
import json
dic = {'name':'nick'}
with open('test.json','w',encoding = 'utf8') as fw:
json.dump(dic,fw)
with open('tset.json','r',encoding = 'utf8') as fr:
data = json.load(fr)
print(data, type(data))
# pickle由于传输的是二进制,所以应该用b模式打开
def func():
print('111')
with open(r'D:day 17m1 est.pkl','wb') as fw:
pickle.dump(func,fw)
with open(r'day 17m1 est.pkl','rb') as fr:
data = pickle.load(fr)
data()