# import sys
# print(sys.path)#环境变量
# print(sys.modules)#查看已经加载的模块
# print(sys.argv)#获取终端调用是的参数
# # 终端版复制文件工具
# 源文件路径
# source =sys.argv[1]#复制的时候2个读写文件路径不要加字符串
# #目标文件路径
# dispath =sys.argv[2]
# with open(source,'rb')as f :
# data = f.read()
# with open(dispath,'wb') as f2:
# f2.write(data)
# print(sys.version)# 获取解释器的版本信息
# print(sys.platform)# 当前平台名称
# print(sys.exit('good bye'))#捕获异常后面会说0正常退出 其他异常退出 退出后不执行后面代码
import os
# print(os.getcwd())# 获取当前的工作目录
# os.chdir(r'C:UsersjtyaolePycharmProjectsuntitled10_15in')#切换工作目录
# print(os.getcwd())#目录发生改名
# print(os.curdir) # 当前目录 是一个点
# print(os.pardir) # 上一级目录 两个点
# print(os.environ)#系统环境变量
# print(os.system('dir'))#显示当前目录
# print(os.makedirs('a/b/c'))#在当前目录下创建目录 可用于递归 如果已存在同名则无法创建
# print(os.mkdir(('a3')))#在当前目录下创建一个目录 如果已存在同名则无法创建
# os.removedirs('a/b/c')# 递归删除 如果没有文件就删掉 有文件则保留
# os.rmdir('a3')# 删除一个目录
# os.remove(r'C:UsersjtyaolePycharmProjectsuntitled10_15inREADME2.txt')
# 删除文件 仅能删除文件
# print(os.listdir(r'C:UsersjtyaolePycharmProjectsuntitled10_15'))
# 列出该目录下的所有文件和文件夹名称
# print(os.sep)# 获取当前平台的路径分隔符
# print(os.linesep,end='')# 获取当前平台的路径分隔符
# from os import path
# print(path.abspath('tt/a.txt'))# 返回绝对路径
# print(path.split('a/b/c.txt')) # 将路径拆分为 文件夹路径和文件名称
# print(path.dirname(__file__))#获取上级目录
# print(path.basename(r'C:UsersjtyaolePycharmProjectsuntitled10_15README.txt'))
# 获取最后一级名称
# print(path.exists(r'C:UsersjtyaolePycharmProjectsuntitled10_15REAME.txt'))
#判断路径是否存在
# print(path.isabs('D://a/b'))# 判断是否使绝对路径 linux下第一个是/就是绝对 win 盘符开始就是绝对
# print(path.join("C://","D://","a","b","c",'asd'))
# 将多个名称拼接为路径 如果有多个起始符(盘符) 取最后一个
# print(path.normcase("AA/BB\CC//"))# 大写变小写 斜杠根据当前平台修改
# print(path.normpath(__file__))# # 斜杠会修改为当前平台的分隔符 可用执行..来返回上一级
#settings
# 第二种拼接方式 跨平台
# 先获取当前路径
# BASE_DIR2 = os.path.dirname(os.path.dirname(__file__))
# LOG_PATH2 = os.path.join(BASE_DIR2,"log","log.txt")
# print(LOG_PATH2)
# 第三种拼接方式 跨平台
# print(os.path.normpath(__file__))
# print(os.path.normpath(os.path.join(__file__,"..","..","log","log.txt")))
# import random
# print(random.random())#0-1 不包括1随机浮点数
# print(random.randint(1,10))# 1-10 包括1和10 的整数
# print(random.randrange(1,10))# 1-10包括1 不包括10的整数
# print(random.sample(["cc",["a,b,c"],3,6,1],3))# 指定一个范围并指定需要的随机个数
# ls = ["1","2","3","4",3,3,4,5]
# random.shuffle(ls)# 打乱顺序 洗牌 改的原有列表
# print(ls)
# print(random.choice([3,4,5]))# 随机选一个
# print(random.choices([1,2,3,4,5,6,7],k=10)) # 随机选指定个数,key可以超出制定数数会重复
# print(random.uniform(1,3))# 两边都包含的随机浮点数
# def get_code_auth(num):
# res =''
# for x in range(num):
# a = random.randint(0,9)
# b = chr(random.randint(65,90))
# c =chr(random.randint(97,122))
# s = random.choice([a,b,c])
# res += str(s)
# return res
#
# print(get_code_auth(10))
import shutil
# f1 = open(r"C:UsersjtyaolePycharmProjectsuntitled10_15README.txt","rb")
# f2 = open(r"C:UsersjtyaolePycharmProjectsuntitled10_15README2.txt","wb")
# shutil.copyfileobj(f1,f2)#给2个路径进行文件拷贝f1拷贝到f2
# shutil.make_archive('m压缩','zip',r'C:UsersjtyaolePycharmProjectsuntitled10_15')
# shutil.make_archive('m压缩','tar',r'C:UsersjtyaolePycharmProjectsuntitled10_15')
#对目录进行压缩
# shutil.unpack_archive(r'C:UsersjtyaolePycharmProjectsuntitled10_15m压缩.zip')
# 解压 可以使用对应的模块来完成
# import zipfile
# z = zipfile.ZipFile(r"D:上海python全栈4期day20my压缩.zip","r") #打开文件
# z.extractall(path=r"D:上海python全栈4期day20解压") #提取文件
# z.close() # 关闭文件
# import tarfile
# t = tarfile.open(r"D:上海python全栈4期day20my压缩.tar","r")
# t.extractall(r"D:上海python全栈4期day20解压")
# t.close()
# import tarfile
# t = tarfile.open(r"D:上海python全栈4期day20you压缩.tar","w")
# t.add("1.昨日回顾")
# t.add("2.今日内容")
# t.close()
# import zipfile
# z = zipfile.ZipFile(r"D:上海python全栈4期day20you压缩.zip","w")
# z.write("1.昨日回顾")
# z.write("2.今日内容")
# z.close()