python常用模块random,time,os,sys实例讲解
时间:2018-08-20
本文章向大家介绍python常用模块random,time,os,sys实例讲解,需要的朋友可以参考一下
一丶random模块
取随机数的模块
#导入random模块 import random #取随机小数: r = random.random() #取大于零且小于一之间的小数 print(r) #0.7028485217376959 r = random.uniform(1,2) #取大于一且小于二之间的小数 print(r) #1.2376900963409765 #取随机整数 r = random.randint(2,8) #取大于二且小于八之间的整数 print(r) #7 r = random.randrange(2,8,2) #取大于等于二且小于十之间的整数,每两个取一个 print(r) #6 #随机选择一个返回 r = random.choice(["a","123",["dasd"],"das"]) #123 print(r) #随机选择多个返回,返回的个数为函数的第二个参数 r = random.sample(["a","123",["dasd"],"das"],2) #['123', 'a'] print(r) #打乱列表顺序 item = [1,3,5,7,9] r = random.shuffle(item) #只打乱,无返回值 print(r) print(item)
练习题,随机生成大小写数字的验证码
def func(x=6,alpha=True): s = "" for i in range(x): num = str(random.randint(0,9)) if alpha: alpha_upper = chr(random.randint(65,90)) alpha_lower = chr(random.randint(97, 122)) num = random.choice([num,alpha_lower,alpha_upper]) s += num return s print(func(4,alpha=False)) print(func())
二丶time模块
表示时间的三种方式
在python中,通常有这三种方式来表示时间:时间戳,元组(struct_time),格式化的时间字符串:
(1)时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型.
(2)格式化的时间字符串(Format String): "1999-12-16"
%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 当前时区的名称 %% %号本身 python中时间日期格式化符号:
(3)元组(strict_time):struct_time元组共有9个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,是否是夏令时)
索引(index) | 属性(Attribute) | 值(Values) |
0 | tm_year(年) | 2018 |
1 |
tm_mon(月) |
1-12 |
2 | tm_mday(日) | 1-31 |
3 | tm_hour(时) | 0-23 |
4 | tm_min(分) | 0-59 |
5 | tm_sec(秒) | 0-60 |
6 | tm_wday(deekday) | 0-6(0表示周一) |
7 | tm_yday(一年中的第几天) | 1-366 |
8 | tm_isdst(是否是夏令时) | 默认为0 |
表示时间的几种格式:
#导入时间模块 import time # time.sleep(3) #程序走到这儿会等待3s钟 # 时间戳时间 浮点型数据类型,以s为单位 t = time.time() #1534752249.0591378 print(t) #格式化时间 print(time.strftime("%Y-%m-%d %H:%M:%S")) #strftime = str format time print(time.strftime('%c')) #国外时间格式 # 结构化时间 # 时间元组,localtime将一个时间戳转换成当时时区的struct_time struct_time = time.localtime() # 北京时间 print(struct_time) #time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, # tm_hour=16, tm_min=9, tm_sec=8, tm_wday=0, tm_yday=232, tm_isdst=0)
小结:时间戳是计算机能够识别的时间,时间字符串是人能够看懂的时间,元组则是用来操作时间的
几种格式之间的转换
#时间戳时间转换成字符串时间 #获取当前时间戳 t = time.time() print(t) #1534753176.4760094 # 时间戳转换成结构化时间 ti = time.localtime(t) print(ti) #time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, # tm_hour=16, tm_min=19, tm_sec=36, tm_wday=0, tm_yday=232, tm_isdst=0) # 结构化时间转换成字符串时间 sti = time.strftime("%Y-%m-%d %H:%M:%S",ti) print(sti) #2018-08-20 16:22:06 # 字符串时间转换成时间戳时间 t = "2018-08-20 16:22:06" #字符串时间转换成结构化时间 st = time.strptime(t,"%Y-%m-%d %H:%M:%S") print(st) #time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, # tm_hour=16, tm_min=22, tm_sec=6, tm_wday=0, tm_yday=232, tm_isdst=-1) #结构化时间转换成时间戳 ti = time.mktime(st) print(ti) #1534753326.0
练习:
import time ti_old = "2018-8-19 22:10:8" ti_new = "2018-8-20 16:34:3" true_time=time.mktime(time.strptime(ti_old,'%Y-%m-%d %H:%M:%S')) time_now=time.mktime(time.strptime(ti_new,'%Y-%m-%d %H:%M:%S')) dif_time=time_now-true_time struct_time=time.gmtime(dif_time) print('过去了%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)) #过去了0年0月0天18小时23分钟55秒
三丶sys模块
sys模块时与python解释器交互的一个接口
import sys print(sys.argv) #['D:/Learn/day18/1.1.py'] 程序本身的路径 for i in range(0,9): print(i) #0 sys.exit() #遇到sys.exit() 退出程序,正常退出时exit(0),错误退出sys.exit(1) print(sys.version) #获取Python解释程序的版本信息 #3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] print(sys.path) #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 #"C:Program FilesPython36python.exe" D:/Learn/day18/1.1.py #['D:\Learn\day18', 'D:\Learn', 'C:\Program Files\Python36\python36.zip', # 'C:\Program Files\Python36\DLLs', 'C:\Program Files\Python36\lib', # 'C:\Program Files\Python36', 'C:\Program Files\Python36\lib\site-packages', # 'E:\pycharm\PyCharm 2018.1.3\helpers\pycharm_matplotlib_backend'] print(sys.platform) #win32 返回操作系统平台名称
四丶os模块
os模块是与操作系统交互的一个接口
import os os.makedirs("name1/name2/name3") #可生成多层递归目录 os.mkdir("name1") #生成单级目录;相当于shell中mkdir dirname os.rmdir("D:/Learn/day18/name1") #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.removedirs("D:/Learn/day18/name1") #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.listdir("D:/Learn/day18/name1") #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove("name1") #删除一个文件 os.rename("oldname","newname") #重命名文件/目录 os.stat('path/filename') #获取文件/目录信息 os.system("bash command") #运行shell命令,直接显示 os.popen("bash command.read()") #运行shell命令,获取执行结果 os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") #改变当前脚本工作目录;相当于shell下cd
未完待续........
- 邹方明:看腾讯云如何架构海量存储系统
- 王之捷:AI智能云端架构大幅提升智能语音识别能力
- 精彩大放送 | 腾讯云:容器架构向无服务架构的演进
- Python 数据分析学习笔记
- 如何用Fiddler抓取https
- 人工智能与大数据结合,帮助降低自杀率
- “多态”的数据库连接池实现
- ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidatorProvider
- 用js代码理解区块链,最简版本
- 谈谈IE针对Ajax请求结果的缓存
- Ajax请求过程中显示“进度”的简单实现
- ASP.NET MVC基于标注特性的Model验证:ValidationAttribute
- 【深度学习系列】卷积神经网络详解(二)——自己手写一个卷积神经网络
- 区块链钱包mMoney向GooglePay、Applepay发起挑战
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 猿蜕变系列2——一文搞懂spring的花式DI
- 猿蜕变系列3——SpringMVC之初体验
- 猿蜕变4——一文获取web框架正确学习套路
- 猿蜕变系列5——一文搞懂Controller的花式编写
- 猿蜕变系列6——一文掌握springMVC必会技巧
- ModuleNotFoundError: No module named ‘__main__.XX‘;
- 猿蜕变系列7——也说说springMVC上传姿势
- 猿蜕变系列8——一文搞懂Interceptor操纵姿势
- 猿蜕变9——一文搞定SpringMVC的RESTFul套路
- 猿蜕变10——一文学会ORM的正确打开姿势
- 猿蜕变11——一文掌握mybatis全局玩儿法
- 猿蜕变12——一文搞定mybatis花式玩法
- 猿蜕变13——一文搞懂mybatis规范和标签
- 猿蜕变14——一文搞懂AOP的套路
- 猿蜕变15——一文搞懂Spring AOP的正确姿势