一、random模块
在未来的开发中,我们可能需要用到生成随机数,这样就需要用到random模块
import random print(random.random()) # 随机生成0-1中的数 print(random.randint(1, 8)) # 随机生成指定整数范围中的数,如1到8的整数,包括1和8 print(random.randrange(1, 8)) # 随机生成指定的数的范围,如1到8,左开右闭 print(random.choice('hello world!')) # 随机生成序列中的元素 print(random.choice([1, 'hello', (24, 3)]))
案例:验证码生成器
# 一个len长度为5位的字母数字混合的验证码 def code(): co = "" for i in range(5): p = random.choice([random.randrange(10), chr(random.randrange(65, 91))]) co += str(p) print(co) code()
指定验证码的偶数位是数字,奇数位是字母
def code(): co = "" for i in range(1, 6): if i % 2 == 0: p = str(random.randrange(10)) else: p = str(chr(random.randrange(65, 91))) co += p print(co) code()
附:
chr()是内置函数
def chr(*args, **kwargs): # real signature unknown """ Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff. """ pass
二、os模块
os模块这是一个调用操作系统接口的一个模块
目录操作
import os # 目录操作 # 创建目录 os.mkdir('test') # 创建当前目录下同级目录 os.mkdir(r'D:zgzeng est2') # 在指定的目录下创建目录 # 判断是否创建成功 print(os.path.isdir('test')) # True print(os.path.isdir(r'D:zgzeng est2')) # True os.makedirs(r'ac') # 在相对路径下创建递归目录 os.makedirs(r'D:zgzeng est3 est4 est5') # 在指定的目录下创建递归目录 print(os.path.isdir(r'D:zgzeng est3 est4 est5')) # True print(os.path.exists(r'ac')) # True,判断目录是否存在 # 删除目录 os.rmdir(r'ac') # 删除指定的空目录 ,只能删除一层目录,也就是c目录 os.rmdir(r'D:zgzeng est2') # 指定删除空目录 print(os.path.exists(r'ac')) # False os.removedirs(r'a') # 递归删除空的目录 print(os.path.isdir(r'a')) # False # 重命名目录 os.rename(r'. est', r'. est2') # 指定修改文件目录名,如果在当前目录下存在test2这个目录,那么就会报错 print(os.path.isdir('test')) # False print(os.path.isdir('test2')) # True # 获取目录 print(os.listdir(r'D:zgzengpychon基础 eee')) # 指定路径,列出该路径目录下包含的文件夹和文件名 # ['1', '1-异常.py', '2-异常处理格式2.py', '3-异常处理3.py', '4-捕获异常.py', '5-捕获具体的异常信息.py', '6-异常处理机制.py', '7-自定义异常.py', '8-案例.py', 'datas_1.py', 'lianxi.py', '__pycache__'] # 返回当前目录 print(os.getcwd()) # D:zgzengpychon基础 获取当前工作路径 # 返回上级路径 os.chdir('..') # 返回到指定路径,这里返回上一级路径 print(os.getcwd()) # D:zgzeng os.chdir(r'C:Users') print(os.getcwd()) # C:Users
# 删除文件
os.remove('test.txt') # 删除指定文件
os.remove(r'D:zgzeng1.txt')
# 获取指定文件/目录信息
print(os.stat('1.txt'))
# os.stat_result(st_mode=33206, st_ino=2533274790396271, st_dev=2221381207, st_nlink=1, st_uid=0, st_gid=0, st_size=34, st_atime=1597026039, st_mtime=1597026039, st_ctime=1592642197)
os.system(
"bash command"
) 运行shell命令,直接显示
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.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.open()方法打开一个文件,并且设置需要打开的选项
import os # os.open(file, flags[,mode]) # file参数是需要打开的文件, # flags os.open('qq号码.py', os.O_RDONLY) # 以只读的方式打开 os.open('qq号码.py', os.O_WRONLY) # 以只写的方式打开 os.open('qq号码.py', os.O_RDWR) # 以读写的方式打开 os.open('qq号码.py', os.O_NOINHERIT) # 打开不阻塞 os.open('qq号码.py', os.O_APPEND) # 以追加的方式打开 os.open('qq号码2.py', os.O_CREAT) # 创建并打开一个新文件 os.open('file', os.O_TRUNC) # 打开一个文件并截断它的长度(必须有写的权限) os.open('qq号码.py', os.O_EXCL) # 如果指定文件存在,返回错误
os.write()方法用于写入字符串到文件中,描述符fd中,返回实际写入的字符串长度
os.lseek()方法用于设置文件描述符fd当前位置为pos,how方式修改
os.read()方法用于从文件描述符fd中读取最多n字节,返回包含读取字节的字符串,文件描述符fd对应文件已达到结尾,返回一个空字符串
os.fsync() 方法强制将文件描述为fd的文件写入硬盘
os.close()方法用于关闭文件描述符fd
f = os.open('test.txt', os.O_CREAT | os.O_RDWR) # 打开文件 os.write(f, b'This is test') # 写入内容 os.fsync(f) # 将字符串刷新到硬盘上 os.lseek(f, 0, 0) # 将指针置为0 text = os.read(f, 100) # 读取文件 print(text) # b'This is test' os.close(f)