模块
一、random模块
random模块:就是产生随机数的
在使用random模块之前要引入该模块 import random
1.随机取小数:用于数学计算
print(random.random())#无论怎么取多少次都不会大于1 # 0.8412404241929341 print(random.uniform(1,2))#在1和2之间取小数 # 1.8334167882454961
2.取随机整数:彩票、抽奖
print(random.randint(1,2)) # 在[1,2]之间随机取整数 print(random.randrange(1,2,1))#在[1,2)之间随机取整数 最后一个参数类似步长
3.随机抽取列表中的一个元素:
l = [1,"avbd",(1,2,3),"a"] print(random.choice(l)) #随机取出列表中的某一个元素 print(random.sample(l,2))#必须有两个参数,第二个参数是随机取出的数量不能超过列表的范围,取出的元素不重复
4.打乱一个列表的顺序:没有产生新的列表,在原列表上更改顺序(节省内存)
l = [1,"avbd",(1,2,3),"a"] random.shuffle(l) print(l) # [1, 'a', 'avbd', (1, 2, 3)]
5.6位数字+字母的验证码(函数)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
def yzm(n = 6,alpha = True): s = '' for i in range(n): 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_upper,alpha_lower]) s += num return s print(yzm())
二、time模块
time模块:主要功能与时间相关
1.time.sleep(2) 程序运行到这行代码会等待2秒钟(括号内的参数为等待的时间,单位/秒)
2.时间戳时间:浮点型数据类型,以s为单位,给计算机看的(伦敦1970/1/1 0:0:0:)开始计时
print(time.time()) #1534752193.0099864
3.结构化时间:
struct_time = time.localtime() #获取的是本地计算机的时间,用gmtime方法获取伦敦时间 print(struct_time) print(struct_time.tm_mon) # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=16, tm_min=5, tm_sec=44, tm_wday=0, tm_yday=232, tm_isdst=0) # 8
索引(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(weekday) | 0-6(0表示周一) |
7 | tm_yday(一年中的第几天) | 1-366 |
8 | tm_isdst(是否是夏令时) | 默认为0(1表示是) |
4.格式化时间:主要是给人看的
print(time.strftime("%Y-%m-%d %H:%M:%S")) print(time.strftime("%y-%m-%d %H:%M:%S")) print(time.strftime("%c")) # 2018-08-20 16:17:34 # 18-08-20 16:17:34 # Mon Aug 20 16:17:34 2018
三种格式时间之间的转换:
计算时差:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
str_time1 = '2018-8-19 22:10:8' str_time2 = '2018-8-20 11:07:3' struct_t1 = time.strptime(str_time1,'%Y-%m-%d %H:%M:%S') struct_t2 = time.strptime(str_time2,'%Y-%m-%d %H:%M:%S') timestamp1 = time.mktime(struct_t1) timestamp2 = time.mktime(struct_t2) sub_time = timestamp2 - timestamp1 gm_time = time.gmtime(sub_time) print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(gm_time.tm_year-1970,gm_time.tm_mon-1, gm_time.tm_mday-1,gm_time.tm_hour, gm_time.tm_min,gm_time.tm_sec))
三、sys模块
sys模块是和python解释器打交道
1.
print(sys.argv) # argv的第一个参数 是python这个命令后面的值 usr = input('username') pwd = input('password') usr = sys.argv[1] pwd = sys.argv[2] if usr == 'zhangqing' and pwd == '123456: print('登录成功') else: exit()
2.sys.path
sys.path能查看被导入模块(模块在硬盘上,当import时被调用到内存中)
3.sys.modules
是我们导入到内存中的所有模块的名字:这个模块的内存地址
print(sys.modules['re'].findall('\d','abc126')) #只要导入的模块,就可以用sys.modules[“模块名”]调用相关方法
四、os模块
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 删除一个文件 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 os.path os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) 如果path是绝对路径,返回True os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间 os.path.getsize(path) 返回path的大小