今天学习了sys模块,os模块,os下的path模块,random模块和shutil模块
一、random模块
random模块是一个随机数生成模块
random.random() 会得到一个不包括1的随机浮点数
random.randint(1,10) 会得到包括1和10的整数
random.randrange(1,10) 会得到包括1 不包括10的整数
random.sample(['aaa',['a','b'],3,4,5],2) 指定一个范围并指定需要的随机个数
ls = ['1','2','3','4','5']
random.shuffle(ls) 打乱顺序 洗牌 改的原有列表
print(ls)
print(random.choice([1,2,3])) 随机选一个
print(random.choices([1,2,3,4,5,6,7],k = 2))
写一个随机验证码 长度自定义 包括0-9 A-Z a-z
def get_auth_code(lenth):
res = ''
for i in range(lenth):
a = random.randint(0,9)
b = chr(random.randint(65,90))
c = chr(random.randint(97,122))
s = random.choice(a,b,c)
return res
print(get_auth_code(4))
print(random.uniform(1,3)) 获得一个1-3中不包括1和3的浮点数
二、sys模块
sys.path 查看当前的环境变量
sys.modules 查看已经加载的模块
sys.argv 获取终端调用时的参数
sys.version 获取解释器的版本信息
sys.platform 获取当前平台名称
sys.exit(n) 退出程序,正常退出时exit(0)
三、os模块
os 主要用于与操作系统进行交互
os.getcwd() 获取当前的工作目录
os.chdir(‘D:上海python全栈4期day20pack’) 切换工作目录
os.curdir 返回当前目录:('.')
os.pardir 获取当前目录的父目录字符串名: ('..')
os.makedirs('1/2/3') 可生成多层递归目录
os.removedirs('1/2/3') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('a') 生成胆机目录;相当于shell中mkdir a
os.rmdir('a') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中的rmdir a
os.remove() 删除一个文件
os.listdir('a') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.rename('oldname','newname') 重命名文件/目录
os.stat('path/filename') 重命名文件/目录
os.sep 输出操作系统特定的路径分隔符,win下为'\',Linux下为'/'
os.linesep 输出当前平台使用的行终止符,win下为' ',LInux下为' '
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。 win ->'nt';Linux->'posix'
os.system('bash command') 运行shell命令,直接显示
os.environ 获取系统环境变量
四、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.join(path1[,path2[,...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
normcase 用于将路径规范化 会将大写转为小写 斜杠改为当前系统分隔符
print(os.path.normcase('\a\b\ABCS'))
normpath 用于将路径规范化 不仅将非法的分隔符替换为合法分隔符 还将大写转为小写 并且会执行..的回到上一层
print(os.path.normpath('/a/b/../ABCS'))
五、shutil 模块
非常简便的文件操作 压缩包处理模块
shutil.copyfileobj 拷贝文件 提供两个文件对象 长度表示缓冲区大小
shutil.copyfile(src,dst) 拷贝文件 提供两个文件路径
shutil.copymode() 拷贝文件权限 提供两个文件路径
shutil.copystat(src,dst) 拷贝文件和状态信息 提供两个文件路径
shutil.ignore_patterns('mps','*.py')
shutil.copytree(src,dst,symlinks = False,igore = None) 拷贝目录
symlinks 默认False 将软连接拷贝到硬链接 否则拷贝为软连接
shutil.rmtree 删除目录 可以设置忽略文件
shutil.move(src,dst)
移动目录和文件
压缩与解压缩
shutil 可以打包 但是无法解包 并且打包也是调用tarfile 和zipFIle完成解压需要按照格式调用对应的模块
打包
shutil.make_archive('test','tar','/Users/jerry/PycharmProjects/package/package1')
import tarfile,zipfile
zip压缩
z = zipfile.ZipFile('test.zip','w')
z.write('sys.py')
z.write('start.py')
z.close()
zip解压
z = zipfile.ZipFile('test.zip','r')
z.extractall('/User/jerry/PycharmPrijects/package/aaa')
z.close()
tar压缩
t = tarfile.open('teat.tar','w')
t.add('start.py')
t.add('sys.py')
t.close()
tar解压
t = tarfile.open('test.tar')
t.extractall('aaa/')
t.close()