一.sys模块
1.sys.argv 命令行参数List,第一个元素是程序本身路径
2.sys.exit(n) 退出程序,正常退出时exit(0)
3.sys.version 获取Pythonn解释程序的版本信息
4.sys.maxint 最大的int值
5.sys.path 返回模块的搜索路径,初始化使用PYTHONPATH环境变量的值
6.sys.platform 返回操作系统平台名称
拓展
脚本执行时 很多时候需要使用进度条
如何实现
print("[###])
print(‘[####]")
print("[#####]")
分析:
中括号位置实固定的变化的时里面的符号
格式化替换加占位 print("[%-50s]"%"#")
人家的是不换行的一直在一行刷新进度
实际上是新的内容覆盖了旧的内容感觉像是动画
中括号的宽度应该是不固定的 根据cmd进行调整 所以当做参数传进来
于是print("[%-%ds]")
发现不行说你传参传多了
定义为方法
不换行打印 并将光标移动至行其实
二.os模块
os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname")
os.curdir 返回当前目录:(‘,‘)
os.pardir 获取当前目录的父目录字符串名:(‘..‘)
os.makedirs(‘dirname1/dirname2‘) 可生成多层递归目录
os.removedirs(‘dirname1‘) 若目录为空,则删除,并递归到上一级目录,如若也为空
则删除,依此类推.
os,mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘diname‘) 删除单级空目录,若目录不为空则无法删除,报错;相
当于shell中rmdir dirname
os,listdir(‘dirname‘) 列出指定目录下的所有文件和子目录,包括隐藏文件,
并以列表的方式打印
os.remove()删除一个文件
os.rename(‘oldname‘,‘newname‘)重命名文件/目录
os.stat(‘path/filename‘) 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linus下为‘\n‘
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.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的?大?小
# normcase ?用于将路路规范化 会将?大写转为?小写 斜杠改为当前系统分隔符
print(os.path.normcase("\\a\\b\\ABCS"))
# normpath?用于将路路径规范化 不不仅将?非法的分隔符替换为合法分隔符 还将
?大写转为?小写 并且会执?行行..的回到上?一层
print(os.path.normpath("/a/b/../ABCS"))
5.setting
import os # 直接写死不能跨平台 尽量使用下面两种 DB_PATH = r"D:\上海python全栈4期\day19\db\高根db.txt" LOG_PATH = r"D:\上海python全栈4期\day19\log\log.txt" # 第二种拼接方式 跨平台 # 先获取当前路径 # 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")))
6 随机模块random
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(["aaa",["a","b"],3,4,5],2)) # 指定一个范围并指定需要的随机个数 ls = ["1","2","3","4"] 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(length): res = "" for i in range(length): 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_auth_code(4))
7 shutil 模块
非常简便便的?文件操作 压缩包处理理模块
shutil.copyfileobj 拷?贝?文件 提供两个?文件对象 ?长度表示缓冲区?大?小
shutil.copyfile(src, dst) 拷?贝?文件 提供两个?文件路路径
shutil.copymode() 拷?贝?文件权限 提供两个?文件路路径
shutil.copystat(src, dst) 拷?贝?文件状态信息 最后访问 最后修改 权限 提供两
个?文件路路径
shutil.copy(src, dst) 拷?贝?文件和权限 提供两个?文件路路径
shutil.copy2(src, dst) 拷?贝?文件和状态信息 提供两个?文件路路径
shutil.ignore_patterns("mp3","*.py")
shutil.copytree(src, dst, symlinks=False, ignore=None) 拷?贝?目录
symlinks默认False将软连接拷?贝为硬链接 否则拷?贝为软连接
shutil.rmtree 删除?目录 可以设置忽略略?文件
shutil.move(src, dst)
移动?目录和?文件
8.压缩与解压缩
shutil 可以打包 但是?无法解包 并且打包也是调?用tarfile 和 zipFile完成
解压需要按照格式调?用对应的模块
打包
shutil.make_archive("test","tar","/Users/jerry/PycharmProjects/package/packa
ge1")
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("/Users/jerry/PycharmProjects/package/aaa")
z.close()
tar压缩
t = tarfile.open("test.tar","w")
t.add("start.py")
t.add("sys.py")
t.close()
tar解压
t = tarfile.open("test.tar")
t.extractall("aaa/")
t.close()
作业:
明日默写
添加工程根目录至环境变量 要求可以跨平台
import os # 直接写死不能跨平台 尽量使用下面两种 DB_PATH = r"D:\上海python全栈4期\day19\db\高根db.txt" LOG_PATH = r"D:\上海python全栈4期\day19\log\log.txt" # 第二种拼接方式 跨平台 # 先获取当前路径 # 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__,"..",".."
1.课堂上的随机验证码练习
# 随机验证码 长度自定义 包括0-9 A-Z a-z def get_auth_code(length): res = "" for i in range(length): 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
2.把今天讲的shutil os sys练习一下
原文地址:https://www.cnblogs.com/gongcheng-/p/9799341.html