一:time模块
1,记录时间有三种格式
import time # 时间戳时间 print(time.time()) # 时间戳时间 # 计算时间差 精准的运算 #格式化时间 print(time.strftime('%Y-%m-%d %H:%M:%S'))# 字符串格式化时间 # 记录下来给人看 print(time.strftime('%y-%m-%d'))# 字符串格式化时间 print(time.strftime('%x %X'))# 字符串格式化时间 print(time.strftime('%c'))# 字符串格式化时间 #结构化时间 print(time.localtime())# 本地结构化时间 # 对应项的简单计算 print(time.gmtime()) # 英国的结构化时间
%y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身
import time def cal_time(fmt_time,fmt): now = time.time() time_before = time.mktime(time.strptime(fmt_time,fmt)) sub_time = now - time_before struct_time = time.gmtime(sub_time) return '过去了%d年%d月%d天%d小时%d分钟%d秒' % (struct_time.tm_year - 1970, struct_time.tm_mon - 1, struct_time.tm_mday - 1, struct_time.tm_hour, struct_time.tm_min, struct_time.tm_sec) ret = cal_time('2018-4-23 10:30:20','%Y-%m-%d %H:%M:%S') #过去了0年0月2天0小时38分钟35秒 print(ret)
2,几种时间格式的相互转换
p = time.strptime('2015-8-8','%Y-%m-%d') #格式化时间---->结构化时间 print(p) print(time.mktime(p)) #结构化时间----->时间戳时间 print(time.time()-time.mktime(p))
二:random模块
>>> import random #随机小数 >>> random.random() # 大于0且小于1之间的小数 0.7664338663654585 >>> random.uniform(1,3) #大于1小于3的小数 1.6270147180533838 #恒富:发红包 #随机整数 >>> random.randint(1,5) # 大于等于1且小于等于5之间的整数 >>> random.randrange(1,10,2) # 大于等于1且小于10之间的奇数 #随机选择一个返回 >>> random.choice([1,'23',[4,5]]) # #1或者23或者[4,5] #随机选择多个返回,返回的个数为函数的第二个参数 >>> random.sample([1,'23',[4,5]],2) # #列表元素任意2个组合 [[4, 5], '23'] #打乱列表顺序 >>> item=[1,3,5,7,9] >>> random.shuffle(item) # 打乱次序 >>> item [5, 1, 3, 7, 9] >>> random.shuffle(item) >>> item [5, 9, 7, 1, 3]
#生成6位数字验证码 数字可以重复 import random def id_code(num): ret = '' for i in range(num): n = random.randint(0,9) ret += str(n) return ret print(id_code(6)) # num 大写字母 小写字母在每一位被取到的概率相同 def id_code(num): ret = '' for i in range(num): number = str(random.randint(0,9)) alph_num = random.randint(97,122) # A65 a97 +25 alph_num2 = random.randint(65,90) # A65 a97 +25 alph = chr(alph_num) alph2 = chr(alph_num2) choice = random.choice([number,alph,alph2]) ret += choice return ret print(id_code(6)) # num,字母在每一位被取到的概率相同 def id_code(num): ret = '' for i in range(num): number = str(random.randint(0,9)) alph_num = random.randint(97,122) # A65 a97 +25 alph_num2 = random.randint(65,90) # A65 a97 +25 alph = chr(alph_num) alph2 = chr(alph_num2) choice = random.choice([alph,alph2]) choice = random.choice([number,choice]) ret += choice return ret print(id_code(6))
三:sys模块
sys模块是与python解释器交互的一个接口
sys.argv 命令行参数List,第一个元素是程序本身路径,以脚本的形式执行一个文件的时候,可以加一些参数 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称
import sys print(sys.argv) # 列表 列表的第一项是当前文件所在的路径 if sys.argv[1] == 'alex' and sys.argv[2] == '3714': print('登陆成功') else: sys.exit()
import sys import logging inp = sys.argv[1] if len(sys.argv)>1 else 'WARNING' logging.basicConfig(level=getattr(logging,inp)) # DEBUG num = int(input('>>>')) logging.debug(num) a = num * 100 logging.debug(a) b = a - 10 logging.debug(b) c = b + 5 print(c)
四:os 模块
os模块是与操作系统交互的一个接口
import os # print(os.getcwd()) # 获取当前文件所在的路径 #os.makedirs('name1/name2') # 一次创建多级目录文件夹 #os.mkdir('name/11') # 一次创建单级目录文件夹 #os.rmdir('name1/name2') #删除name1中的name2文件夹,前提是name2文件夹为空才能删除 #os.removedirs('name1/name2') #删除name1和name2文件夹,但必须当name2文件夹为空时才能删除 #print(os.listdir('G:python')) #以一个列表的形式打印该目录下的所有文件夹 #print(os.stat(r'G:python ew2.py')) #获取当前目录下的文件信息(访问时间,修改时间等) # path = 'python%s2.mok.py'%os.sep # 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/" # print(path) #print(os.environ) #获取当前系统的所有环境变量 # path系列 print(os.path.abspath('userinfo')) # 获取文件的绝对路径 G:pythonuserinfo print(os.path.dirname(os.path.abspath('userinfo'))) #获取该文件的上一级目录 G:python print(os.path.split(os.path.abspath('userinfo'))) #将path分割成目录和文件名,以元组形式返回 print(os.path.exists(r'D:python11day28userinfo')) #查看某个path是否存在(r表示取消path里所有的转译) print(os.path.isabs(r'userinfo2')) #判断某个路径是否是绝对路径 print(os.path.isfile(r'userinfo')) #判断是否是文件 print(os.path.isdir(r'name1')) #判断是否是文件夹 print(os.path.join('D:\python11\day28','userinfo')) #将多个路径拼接后返回 print(os.path.getsize(r'D:python11')) #返回某一个文件的大小(对于文件夹只返回4096)