''' 模块的分类 1.标准库 2.开源模块 3.自定义模块 '''
''' 内置模块之time、datetime time三种类型:时间戳(1970后经过的秒数) 格式化字符串(2018-12-30) struct_time(tuple) 时间戳→struct_time:gmtime,localtime struct_time→时间戳:mktime 格式化→元组:strptime 元组→格式化:strftime ''' import time,datetime print(time.time()) #获取时间戳,即1970到现在经过的秒数 #time.sleep(2) #延迟2秒 print(time.gmtime(100)) #传入一个秒数,转换成UTC时间元组 print(time.gmtime()) #不传入时间则转换当前时间 print(time.localtime()) #同gmtime,但是结果为UTC+8时区 x = time.localtime() print(x.tm_year) #利用localtime获取时间戳的年份 print(time.mktime(x)) #把元组时间转化为时间戳 print(time.strftime('%Y-%m-%d %H:%M:%S',x)) #把时间元组格式化 print(time.strptime('2018-12-30 1:2:3','%Y-%m-%d %H:%M:%S')) #把格式化时间转化为元组 print(datetime.datetime.now()) #获取当前时间 print(datetime.datetime.now()+datetime.timedelta(3)) #获取三天后的时间 print(datetime.datetime.now()+datetime.timedelta(hours=3)) #获取三小时后的时间 print(datetime.datetime.now()+datetime.timedelta(minutes=-10)) #获取10分钟之前的时间
'''random模块:用于生成随机数''' import random print(random.random()) #获取一个随机浮点数 0-1区间 print(random.randint(1,10)) #从1-10 print(random.randrange(1,10)) #从1-9,range顾首不顾尾,即不包含最后值
'''os模块:用于系统相关操作''' import os print(os.getcwd()) #获取当前目录 print(os.environ) #获取环境变量 os.chdir('C:') #改变当前脚本工作目录 #os.makedirs('C:\\a\\b\\c') #递归创建目录 相当于Linux的mkdir -p #os.removedirs('C:\\a\\b\\c') #递归删除空目录 相当于Linux的rmdir -p #os.mkdir('a') #同Linux #os.rmdir('a') #同Linux print(os.listdir('C:\\')) #以列表形式打印路径下所有内容,包括隐藏文件 相当于ls - a with open('Test.txt','w+') as test: test.write('Hello') #os.rename('Test.txt','1.txt') #重命名文件 print(os.listdir(os.getcwd())) #查看当前路径下的内容 #os.remove('1.txt') #删除文件 print(os.listdir(os.getcwd())) #查看当前路径下的内容 print(os.path.getatime('Test.txt')) #获取atime,同理还有ctime mtime print(os.path.isdir('pack_test')) #判断是否是路径 print(os.path.abspath('pack_test')) #返回绝对路径 print(os.path.split('C:\\Users\\yufo\\PycharmProjects\\untitled\\04_模块\\pack_test')) #分割为目标和路径的元组 #os.system('ping baidu.com') #调用系统相关命令
'''sys模块:用于解释器相关操作''' import sys print(sys.platform) #返回操作系统平台
'''hashlib、hmac模块:用于加密等相关操作''' import hashlib test = hashlib.sha1(b'Test\n') #加密方式为sha1 test.update(b'Test for hashing.') #b代表bytes print(test.hexdigest) print(test.digest) import hmac test02 = hmac.new(b'This is key',b'This is context') print(test02.hexdigest())
'''shutil:文件、文件夹、压缩管理模块''' # import shutil # shutil.copyfile('test_a','test_b') #把test_a文件的内容拷贝到test_b # with open('test_b','r') as b: # print(b.read()) # # shutil.copymode('test_a','test_b') #只拷贝权限,不拷贝内容和owner # shutil.copystat('test_a','test_b') #拷贝状态,如atime,flags等 # shutil.copy('test_a','test_b') #拷贝内容和权限 # shutil.copy2('test_a','test_b') #拷贝内容和状态 # shutil.copytree('pack_test','pack_test_bak') #递归的拷贝文件,相当于cp -r # shutil.rmtree('pack_test_bak') #递归的删除文件,相当于rm -rf # shutil.move('pack_test','pack_test_bak') #相当于mv -r #shutil.make_archive('pack_test','zip') #压缩文件
'''json,pickle:用于数据序列化的模块,json跨语言,pickle只能用于python''' '''json存放后是文本文件,不需要在读写模式上加b,而pickle存放之后是二进制文件,要在读写模式后加b''' '''dumps只是转换成Bytes,不存放文件,同理loads''' import json,pickle # dict_a = { # 'name':'root', # 'passwd':'abc123', # 'last_login':'10:00', # 'uid':'0' # } #定义一个字典 # print(type(dict_a)) #发现类型是字典 # with open('json_test','w') as json_write: #定义json文件 # json.dump(dict_a,json_write) #把字典存放到json文件 # with open('json_test','r') as json_read: #读取json文件 # tmp = json.load(json_read) #读取出存放的字典 # print(tmp) # print(type(tmp)) #查看数据类型还是字典 # with open('pickle_test','wb') as pickle_w: #pickle方法和json一致,但是要注意读写模式上加b # pickle.dump(dict_a,pickle_w) # with open('pickle_test','rb') as pickle_r: # tmp2 = pickle.load(pickle_r) # print(tmp2) # print(type(tmp2))