1、random模块(取随机数模块)

# 取随机小数 : 数学计算

import random
print(random.random())# 取0-1之间的小数
print(random.uniform(1,2))# 取1-2之间的小数

# 取随机整数 : 彩票 抽奖

import random
print(random.randint(1,2)) #头和尾都取得到
print(random.randrange(1,2)) # 取不到尾部
print(random.randrange(1,200,2)) # 按步数进行随机取数

# 从一个列表中随机抽取值 : 抽奖

l = ['a','b',(1,2),123]
print(random.choice(l))# 选择列表中一个进行随机取值,如果进行多次会取到重复的值
print(random.sample(l,2))# 选取两个值,两个值不会重复

# 打乱一个列表的顺序,在原列表的基础上直接进行修改,节省空间

l = ['a','b',(1,2),123]
random.shuffle(l)
print(l)

#验证码练习

# 4位数字验证码

import random

s = ''
for i in range(4):
num = random.randint(0,9)
s += str(num)
print(s)

# 6位数字验证码

import random
def code(n = 6):
s = ''
for i in range(n):
num = random.randint(0,9)
s += str(num)
return s
print(code(6))

# 6位数字+字母验证码

import random
s = ''
for i in range(6):
num = str(random.randint(0,9))
alpha_upper = chr(random.randint(65,90))
alpha_lower = chr(random.randint(97, 122))
ret = random.choice([num,alpha_upper,alpha_lower])
s += ret
print(s)

# 函数版本

import random
def code(n = 6):
s = ''
for i in range(n):
# 生成随机的大写字母,小写字母,数字各一个
num = str(random.randint(0,9))
alpha_upper = chr(random.randint(65,90))
alpha_lower = chr(random.randint(97,122))
res = random.choice([num,alpha_upper,alpha_lower])
s += res
return s
print(code(4))

# 进阶

import random
def code(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(code(4,False))

2、time模块

# time模块主要是用来和时间打交道的

# 时间戳时间

import time
print(time.time())

# 格式化时间

print(time.strftime('%Y-%m-%d %H:%M:%S'))
print(time.strftime('%y-%m-%d %H:%M:%S'))
print(time.strftime('%c'))

# 结构化时间

struct_time = time.localtime()  # 北京时间
print(struct_time)
print(struct_time.tm_mon)

# 时间戳换成字符串时间

struct_time = time.localtime(1500000000)
ret = time.strftime('%y-%m-%d %H:%M:%S',struct_time)
print(ret)

# 字符串时间 转 时间戳

struct_time = time.strptime('2018-8-8','%Y-%m-%d')
res = time.mktime(struct_time)
print(res)

1.查看一下2000000000时间戳时间表示的年月日

struct_t = time.localtime(2000000000)
print(time.strftime('%Y-%m-%d',struct_t))

2.将2008-8-8转换成时间戳时间

t = time.strptime('2008-8-8','%Y-%m-%d')
print(time.mktime(t))

3.请将当前时间的当前月1号的时间戳时间取出来 - 函数

def get_time():
st = time.localtime()
st2 = time.strptime('%s-%s-1'%(st.tm_year,st.tm_mon),'%Y-%m-%d')
return time.mktime(st2)
print(get_time())

4.计算时间差 - 函数

  # 2018-8-19 22:10:8 2018-8-20 11:07:3
  # 经过了多少时分秒

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)
# 1970-1-1 00:00:00
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))

3、sys模块

# sys 是和Python解释器打交道的

print(sys.argv)  # argv的第一个参数 是python这个命令后面的值

#两种不同的传值

import sys
usr = input('username')
pwd = input('password')
usr = sys.argv[1]
pwd = sys.argv[2]
if usr == 'alex' and pwd == 'alex3714':
print('登录成功')
else:
exit()

# 是我们导入到内存中的所有模块的名字 : 这个模块的内存地址

import re
print(sys.modules['re'].findall('\d','abc126'))

4、os模块

# os是和操作系统交互的模块

os.makedirs('dir1/dir2')
os.mkdir('dir3') # 只能创建一个
os.mkdir('dir3/dir4') #只有3存在才能创建4 # 只能删空文件夹
os.rmdir('dir3/dir4')
os.removedirs('dir3/dir4')
os.removedirs('dir1/dir2')

# exec/eval执行的是字符串数据类型的 python代码

# os.system和 os.popen是执行字符串数据类型的 命令行代码

os.'system('dir')  # 执行操作系统的命令,没有返回值,实际的操作/删除一个文件 创建一个文件夹 exec
ret = os.popen('dir) # 是和做查看类的操作
s =ret.read()
print(s)

# os.listdir()列举目录下的所有文件。返回的是列表类型。

file_lst = os.listdir('D:\sylar\s15')
for path in file_lst:
print(os.path.join('D:\sylar\s15',path))

#os.path.join()将path进行组合,若其中有绝对路径,则之前的path将被删除。

path = os.path.join('D:\\pythontest\\b', 'D:\\pythontest\\a')
print(path)
#输出D:\pythontest\a

# os.getcwd()  # 查看当前工作目录

os.chdir('D:\sylar\s15\day18')  # 切换当前的工作目录
ret = os.popen('dir') # 是和做查看类的操作
s =ret.read()
print(s)

# os.path.abspath()

#把路径中不符合规范的/改成操作系统默认的格式
path = os.path.abspath('D:/sylar/s15/day19/4.os模块.py')
print(path)
#能够给能找到的相对路径改成绝对路径
path = os.path.abspath('4.os模块.py')
print(path)

#os.path.split() 就是把一个路径分成两段,第二段是一个文件/文件夹

path= os.path.split('D:/sylar/s15/day19/4.os模块.py')
print(path)
#输出('D:/sylar/s15/day19', '4.os模块.py')
path= os.path.split('D:/sylar/s15/day19')
print(path)
#输出('D:/sylar/s15', 'day19')
path= os.path.split('D:/sylar/s15/day19/')
print(path)
#输出('D:/sylar/s15/day19', '')

#os.path.dirname / os.path.basename

ret1 = os.path.dirname('D:/sylar/s15/day19/4.os模块.py')
ret2 = os.path.basename('D:/sylar/s15/day19/4.os模块.py')
print(ret1) #D:/sylar/s15/day19
print(ret2) #4.os模块.py

#os.path.exists() 判断文件/文件夹是否存在

res = os.path.exists(r'D:\sylar\s15\day19\4.os模块.py')
print(res)

#其他用法

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

python note 17 random、time、sys、os模块的更多相关文章

  1. python 常用模块(一): random , time , sys , os模块部分知识.

    1.常用模块:(1)collectiaons模块 (2)与时间相关  time模块 (3)random模块 (4)os模块 (5)sys模块 (6) 序列化模块: json  ,   pickle 2 ...

  2. day18 python模块 random time sys os模块

    day18 python   一.random模块     取随机整数 import random print(random.randint(1,2))                 #顾头顾尾 p ...

  3. sys,os,模块-正则表达式

    # *__conding:utf-8__* """"我是注释""" sys,os模块 import sysimport os pr ...

  4. day2_python的数据类型,sys,os模块,编码解码,列表,字典

    今天主要了解了python的数据类型,sys,os模块,编码解码,列表,字典 1.数据类型:int(python3没有长整型)文本总是Unicode,str表示二进制用byte类表示布尔型:True( ...

  5. python文件、文件夹操作OS模块

    转自:python文件.文件夹操作OS模块   '''一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: ...

  6. random,time,sys,os,序列化模块

    random模块(随机数模块) 取随机小数: random.random() 取0-1之间的小数 random.uniform(x, y) 取x-y之间的小数 取随机整数: random.randin ...

  7. time random sys os 模块

    时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日 ...

  8. time | sys | os 模块,递归删除文件,项目分析

    一,复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块 ...

  9. random,time,sys,os

    import random print(random.random()) #(0,1)大于0且小于1之间的小数 print(random.randint(1,3)) #大于等于1且小于等于3之间的整数 ...

随机推荐

  1. Immutable 学习

    1.什么是Immutable Data? Immutable Data 就是一旦创建,就不能再被更改的数据.对 Immutable 对象的任何修改或添加删除操作都会返回一个新的 Immutable 对 ...

  2. centos7部署.net core2.1

    1.centos 7.0及以上服务器 2..NET SDK 安装 2.1 安装 https://www.microsoft.com/net/download/linux-package-manager ...

  3. oracle自治事务(PRAGMA AUTONOMOUS_TRANSACTION)

    这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查不到刚刚插入的记录,最后发现这个Procedure的定义中加入了PRAGMA AUTONOMOUS_TRANSAC ...

  4. 狗鱼IT教程:推介最强最全的Spring系列教程

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建. 简单来说,Spring是一个分层的JavaSE/EEfull-stack( ...

  5. 关于如何使用ehcarts2加载svg矢量地图并自定义县级内部乡镇轮廓

    项目需求:显示县级内部的乡镇一级地图的轮廓! 效果预览: 阻碍因素:echarts不提供县级以下乡镇级轮廓. 解决思路: 1.根据资料查找相关县的行政区域图(百度搜索),如本人所制作的浙江省宁波市宁海 ...

  6. 关于对CSS中超链接那部分的设置

    a:link{                                  //正常下的超链接 color:red;                          //超链接的颜色 text ...

  7. Linux文件系统备份

    1.添加一块硬盘——创建分区   fdisk   /dev/sdb    n   创建新分区      p  打印分区      w 保存   ——分区格式化    mkfs.xfs  /dev/sd ...

  8. Android 开发 PopupWindow弹窗

    简介 PopupWindow,顾名思义弹窗.PopupWindow是与AlertDialog在形式上类似的弹窗功能,都是为了在activity最上层显示一个弹窗.但是区别是PopupWindow可以自 ...

  9. Powerdesigner16 逆向 postgresql9.2

    参考配置连接:https://www.cnblogs.com/simpleZone/p/5489781.html 过程中遇到的问题: 1.Powerdesigner需要用32位的jdk进行逆向,所以需 ...

  10. java中Method.invoke方法参数解析

    通过发射的机制,可以通过invoke方法来调用类的函数.invoke函数的第一个参数是调用该方法的实例,如果该方法是静态方法,那么可以用null或者用类来代替,第二个参数是变长的,是调用该方法的参数. ...