时间模块 time
import timetime.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-10print(time.strftime('%Y')) #完整的年份 2019print(time.strftime('%y')) #两位数的年份 19print(time.strftime('%m')) #月份(01-12) 04print(time.strftime('%d')) #日期(01-31 10print(time.strftime('%H')) #24小时制的小时数(00-24) 15print(time.strftime('%I')) #12小时制的小时数(01-12) 03print(time.strftime('%M')) #分(00-59) 08print(time.strftime('%S')) #秒(00-59) 48print(time.strftime('%a')) #本地星期简化名称 Wedprint(time.strftime('%A')) #本地完整星期名称 Wednesdayprint(time.strftime('%B')) #本地完整月份名称 Aprilprint(time.strftime('%b')) #本地简化月份名称 Aprprint(time.strftime('%c')) #本地相应的日期和时间 Wed Apr 10 15:08:48 2019print(time.strftime('%j')) #一年中的第几天 100print(time.strftime('%p')) #上午或者下午 PMprint(time.strftime('%u')) #星期几 3print(time.strftime('%w')) #星期几 3print(time.strftime('%W')) #一年中的星期数(00-53)星期一为星期的开始 14print(time.strftime('%x')) #当地相对应的日期表示 04/10/19print(time.strftime('%X')) #本地相对应的时间表示 15:08:48print(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 == 0d2 = year1 % 4 == 0 and year1 % 100 != 0if d1 or d2: print('是 ')else: print('不是 ')
日历模块: calendar
import calendarprint(calendar.isleap(2003)) # 判断是否为闰年 True或者Falseprint(calendar.month(2019,4)) #查看某年某月日历April 2019Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30print(calendar.monthrange(2019,3)) #查看某年某月起始星期几与当月的天数 (4, 31)print(calendar.weekday(2019,5,1)) #查看某年某月某日是星几 2
可以运算的时间 datatime
import datetimeprint(datetime.datetime.now()) #当前时间 2019-04-10 15:46:41.892413print(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.468183print(datetime.date.fromtimestamp(12321231)) #格式化的时间1970-05-23
系统: sys
import sysprint(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值 9223372036854775807print(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 osprint(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) #操作系统名 ntprint(os.environ) #操作系统环境变量print(os.system()) #执行shell脚本
系统路径操作 os.path
import os.pathprint(__file__) #执行文件的当前路径 D:/pycharm/脱产七期/day 17 4.10 常见模块/常见模块练习.pyprint(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 常见模块')) #指定路径是否存在 Trueprint(os.path.isabs('D:\pycharm\脱产七期\day 17 4.10 常见模块')) #是否是绝对路径 Trueprint(os.path.isfile('D:\pycharm\脱产七期\day 17 4.10 常见模块')) #是否是文件 Falseprint(os.path.isdir('D:\pycharm\脱产七期\day 17 4.10 常见模块')) #是否是路径 Trueprint(os.path.join(path1[, path2[, ...]])) #路径拼接print(os.path.getatime('D:\pycharm\脱产七期\day 17 4.10 常见模块')) #最后存取时间 1554885847.2432308print(os.path.getmtime('D:\pycharm\脱产七期\day 17 4.10 常见模块')) #最后修改时间 1554885847.2432308print(os.path.getsize('D:\pycharm\脱产七期\day 17 4.10 常见模块')) #目标大小 0
序列化 json
import jsonjson:{} 与 [] 嵌套的数据注意: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 pickledic = { '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 randomprint(random.random()) #(0,1) 小数:0.6071058391747245print(random.randint(1,10)) #[1,10] 整数: 9print(random.randrange(1,10)) #[1,10) 整数: 5print(random.uniform(1,10)) #(1,10) 小数:4.281837749353642li=[1,2,3,4,5,6,7,8]print(random.choice(li)) #单列集合随机选择1个:6print(random.sample(li,3)) #单列集合随机选择n个:[4, 7, 5]
案例:产生指定位数的验证码
import randomdef 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 codeprint(random_code(6)) #dWuoba
可以操作权限的文件处理模块 shutil
import shutilprint(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 shelves_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] = 30print(s_dic['key1'])print(s_dic['key2'])s_dic['key2']['age'] = 300print(s_dic['key2'])print(s_dic['key3'])s_dic['key3'] = 'def'print(s_dic['key3'])s_dic.close()
标准输入,标准输出,错误流
import sysprint(sys.stdout.write('123\n')) #标准输出 123print(sys.stderr.write('错误信息\n')) #标准错误流 错误信息res = sys.stdin.read(3) #()是你在控制台要输入的字符个数 bdgasf===>bdgprint(res) #标准输入print默认是对sys.stdout.write('msg') + sys.stdout.write('\n')的封装格式化结束符print:print('msg', end='')