时间模块 time
import time time.time() print(time.time()) #时间戳 1554879802.0031486 是数据的唯一标识 print('start') time.sleep(2) print('stop') print(time.localtime()) #当下时间 time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=15, tm_min=3, tm_sec=22, tm_wday=2, tm_yday=100, tm_isdst=0) print(time.gmtime()) #格林威治时间 time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=7, tm_min=3, tm_sec=22, tm_wday=2, tm_yday=100, tm_isdst=0) print(time.strftime('%Y-%m-%d')) #完整的年月日 2019-04-10 print(time.strftime('%Y')) #完整的年份 2019 print(time.strftime('%y')) #两位数的年份 19 print(time.strftime('%m')) #月份(01-12) 04 print(time.strftime('%d')) #日期(01-31 10 print(time.strftime('%H')) #24小时制的小时数(00-24) 15 print(time.strftime('%I')) #12小时制的小时数(01-12) 03 print(time.strftime('%M')) #分(00-59) 08 print(time.strftime('%S')) #秒(00-59) 48 print(time.strftime('%a')) #本地星期简化名称 Wed print(time.strftime('%A')) #本地完整星期名称 Wednesday print(time.strftime('%B')) #本地完整月份名称 April print(time.strftime('%b')) #本地简化月份名称 Apr print(time.strftime('%c')) #本地相应的日期和时间 Wed Apr 10 15:08:48 2019 print(time.strftime('%j')) #一年中的第几天 100 print(time.strftime('%p')) #上午或者下午 PM print(time.strftime('%u')) #星期几 3 print(time.strftime('%w')) #星期几 3 print(time.strftime('%W')) #一年中的星期数(00-53)星期一为星期的开始 14 print(time.strftime('%x')) #当地相对应的日期表示 04/10/19 print(time.strftime('%X')) #本地相对应的时间表示 15:08:48 print(time.strftime('%z')) #当前时区的名称 +0800 格式化时间q=(2020, 4, 10, 10, 19, 22, 2, 200, 0) print(time.strftime('%Y-%m-%d %j %H days', q))
自己写一个判断是否为闰年
直接被400整除,可以被4整除但是不能被100整除 year1 = int(input('year:')) d1 = year1 % 400 == 0 d2 = year1 % 4 == 0 and year1 % 100 != 0 if d1 or d2: print('是 ') else: print('不是 ')
日历模块: calendar
import calendar print(calendar.isleap(2003)) # 判断是否为闰年 True或者False print(calendar.month(2019,4)) #查看某年某月日历 April 2019 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 print(calendar.monthrange(2019,3)) #查看某年某月起始星期几与当月的天数 (4, 31) print(calendar.weekday(2019,5,1)) #查看某年某月某日是星几 2
可以运算的时间 datatime
import datetime print(datetime.datetime.now()) #当前时间 2019-04-10 15:46:41.892413 print(datetime.datetime.now() + datetime.timedelta(hours=-2)) #以前的时间 2019-04-10 13:48:46.498839 # datetime.timedelta(days=-1) ()里的就是你想加减去的时间 print(datetime.datetime.now().replace(year=2020,hour=19)) #修改的时间 # 2020-04-10 19:57:45.468183 print(datetime.date.fromtimestamp(12321231)) #格式化的时间 1970-05-23
系统: sys
import sys print(sys.argv) #命令行参数list,第一个元素是程序本身路径 ['D:/pycharm/脱产七期/day 17 4.10 常见模块/常见模块练习.py'] print(sys.exit()) #退出程序 print(sys.version) #Python解释器的版本信息 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] print(sys.maxsize) #获取最大int值 9223372036854775807 print(sys.path) #环境变量 ['D:\pycharm\脱产七期\day 17 4.10 常见模块', 'D:\pycharm\脱产七期', 'C:\Python36\python36.zip', 'C:\Python36\DLLs', 'C:\Python36\lib', 'C:\Python36', 'C:\Python36\lib\site-packages', 'D:\PyCharm 2018.3.5\helpers\pycharm_matplotlib_backend'] print(sys.platform) #操作系统平台名称 win32
操作系统 :os
import os print(os.mkdir('qqqq')) #生成单级目录 print(os.makedirs('qqq/www/eee')) #生成多级目录 print(os.rename('eee','rrr')) #文件重命名 print(os.getcwd()) #工作目录 D:pycharm脱产七期day 17 4.10 常见模块 print(os.rmdir('qqqq')) #删除单层目录 print(os.removedirs('qqq/www/eee')) #删除多层目录 print(os.listdir('qqq')) #列举目录下所有资源 ['www'] print(os.sep) #路径分隔符 print(os.linesep) #行终止符 print(os.pathsep) #文件分隔符 ; print(os.name) #操作系统名 nt print(os.environ) #操作系统环境变量 print(os.system()) #执行shell脚本
系统路径操作 os.path
import os.path print(__file__) #执行文件的当前路径 D:/pycharm/脱产七期/day 17 4.10 常见模块/常见模块练习.py print(os.path.abspath('D:pycharm脱产七期day 17 4.10 常见模块')) #返回path规范化的绝对路径 D:pycharm脱产七期day 17 4.10 常见模块 print(os.path.split('D:pycharm脱产七期day 17 4.10 常见模块')) #将path分割成目录和文件名二元组返回 ('D:\pycharm\脱产七期', 'day 17 4.10 常见模块') print(os.path.dirname('D:pycharm脱产七期day 17 4.10 常见模块')) #上一级目录 D:pycharm脱产七期 print(os.path.basename('D:pycharm脱产七期day 17 4.10 常见模块')) #最后一级名称 day 17 4.10 常见模块 print(os.path.exists('D:pycharm脱产七期day 17 4.10 常见模块')) #指定路径是否存在 True print(os.path.isabs('D:pycharm脱产七期day 17 4.10 常见模块')) #是否是绝对路径 True print(os.path.isfile('D:pycharm脱产七期day 17 4.10 常见模块')) #是否是文件 False print(os.path.isdir('D:pycharm脱产七期day 17 4.10 常见模块')) #是否是路径 True print(os.path.join(path1[, path2[, ...]])) #路径拼接 print(os.path.getatime('D:pycharm脱产七期day 17 4.10 常见模块')) #最后存取时间 1554885847.2432308 print(os.path.getmtime('D:pycharm脱产七期day 17 4.10 常见模块')) #最后修改时间 1554885847.2432308 print(os.path.getsize('D:pycharm脱产七期day 17 4.10 常见模块')) #目标大小 0
序列化 json
import json json:{} 与 [] 嵌套的数据 注意:json中的字符串必须全部用""来标识 dic = { 'a': 1, 'b': [1, 2, 3, 4, 5] } 序列化: 将python的字典转化为字符串传递给其他语言或保存 json_dumps=json.dumps(dic) print(json_dumps) #序列化转化字符串 {"a": 1, "b": [1, 2, 3, 4, 5]} with open('zzz','w',encoding='utf-8') as w: w.write(json_dumps) #将序列化字符串写到文件中 字符形式操作 反序列化成对象 json_dumps='''{"a": 1, "b": [1, 2, 3, 4, 5]}''' json_str=json.loads(json_dumps) print(json_str) 从文件中反序列化成对象 with open('zzz','r',encoding='utf-8') as r: res=json.load(r) print(res)
序列化 pickle
import pickle dic = { 'a': 1, 'b': [1, 2, 3, 4, 5] } res = pickle.dumps(dic) print(res) #序列化成字符串 with open('xxx', 'wb') as w: w.write(res) #序列化字符串到文件中 字节形式操作 print(pickle.loads(res)) #反序列化成对象 with open('xxx', 'rb') as r: print(pickle.load(r)) #从文件中反序列化成对象
随机数 random
import random print(random.random()) #(0,1) 小数:0.6071058391747245 print(random.randint(1,10)) #[1,10] 整数: 9 print(random.randrange(1,10)) #[1,10) 整数: 5 print(random.uniform(1,10)) #(1,10) 小数:4.281837749353642 li=[1,2,3,4,5,6,7,8] print(random.choice(li)) #单列集合随机选择1个:6 print(random.sample(li,3)) #单列集合随机选择n个:[4, 7, 5]
案例:产生指定位数的验证码
import random def random_code(count): code='' for i in range(count): num=random.randint(1,3) #判断你要验证的是数字,大写之母,小写字母 if num ==1: tag = str(random.randint(0,9)) elif num ==2: tag = chr(random.randint(65,90)) #小写字符的二进制比较 else: tag = chr(random.randint(92,122)) #大写字符的二进制比较 code+=tag return code print(random_code(6)) #dWuoba
可以操作权限的文件处理模块 shutil
import shutil print(shutil.copyfile('ooo.py','iii.py')) #基于路径的文件复制 with open('ooo.py','rb') as r,open('iii.py','wb') as w: shutil.copyfileobj(r,w) #基于流的文件复制 print(shutil.rmtree('ppp')) #递归删除目标目录 print(shutil.move('ooo.py','lll.py')) #文件移动(类似于重命名) print(shutil.make_archive('iii.py','zip','D:pycharm脱产七期day18 4.11常见模块kkkk')) print(shutil.unpack_archive('D:pycharm脱产七期day18 4.11常见模块iii.py.zip','ooo.py.zip','zip'))
可以用字典存取数据到文件的序列化模块 shelve
import shelve s_dic = shelve.open("target.txt") # 注:writeback=True操作数据会同步写到文件 序列化::存 s_dic['key1'] = [1, 2, 3, 4, 5] s_dic['key2'] = {'name': 'Bob', 'age': 18} s_dic['key3'] = 'abc' 文件释放 s_dic.close() s_dic = shelve.open("target.txt", writeback=True) print(s_dic['key1']) s_dic['key1'][2] = 30 print(s_dic['key1']) print(s_dic['key2']) s_dic['key2']['age'] = 300 print(s_dic['key2']) print(s_dic['key3']) s_dic['key3'] = 'def' print(s_dic['key3']) s_dic.close()
标准输入,标准输出,错误流
import sys print(sys.stdout.write('123 ')) #标准输出 123 print(sys.stderr.write('错误信息 ')) #标准错误流 错误信息 res = sys.stdin.read(3) #()是你在控制台要输入的字符个数 bdgasf===>bdg print(res) #标准输入 print默认是对sys.stdout.write('msg') + sys.stdout.write(' ')的封装 格式化结束符print:print('msg', end='')