模块

一、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位数字+字母的验证码(函数)

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())
View Code

二、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

 

三种格式时间之间的转换:

计算时差:

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))
View Code

三、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模块

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的大小
View Code

 

posted @ 2018-08-20 16:54  被嫌弃的胖子  阅读(138)  评论(0编辑  收藏  举报