第二十天 模块 sys os os下path settings random shuit
一.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') 获取文件/目录信息
三 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.settings
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")))
添加工程根目录至环境变量 要求可以跨平台
import sys,os # 项目的根目录
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # 将得到的结果 添加到环境变量中
sys.path.append(BASE_DIR)
6 随机模块random
import random
# 随机数模块 print(random.random()) #- 不包括1随机浮点数
print(random.randint(,)) # - 包括1和10 的整数
print(random.randrange(,)) # -10包括1 不包括10的整数
print(random.sample(["aaa",["a","b"],,,],)) # 指定一个范围并指定需要的随机个数
ls = ["","","",""]
random.shuffle(ls) # 打乱顺序 洗牌 改的原有列表
print(ls)
print(random.choice([,,])) # 随机选一个
print(random.choices([,,,,,,],k=)) # 随机选指定个数 # 随机验证码 长度自定义 包括0- A-Z a-z
def get_auth_code(length):
res = ""
for i in range(length):
a = random.randint(,)
b = chr(random.randint(,))
c = chr(random.randint(,))
s = random.choice([a,b,c])
res += str(s)
return res print(get_auth_code())
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()
2.把今天讲的shutil os sys练习一下
第二十天 模块 sys os os下path settings random shuit的更多相关文章
- 模块sys,os
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的. 在Pyt ...
- (python) 标准模块sys和os的使用
一.sys模块 包含了系统的相关的功能.我们来学习sys.argv,它包含命令行参数. 例子:定义了一个add函数,用来实现两个整数的相加. #! coding=utf-8 # usersys.py ...
- python中模块sys与os的一些常用方法
sys模块提供了访问或操作与python解释器相关方法与对象. 我们就列举出常用到的知识,以后,随着学习,不断补充. 几个常用到的动态对象: sys.argv,这是一个列表,它包含了所有传递给脚本的命 ...
- 洗礼灵魂,修炼python(17)--跨平台操作三剑客—os,os.path.sys模块
os 1.作用: 因为客户基本都是使用不同的操作系统,在不同的系统下,要完成一个项目,那必须跨平台操作,而python本来就是一个跨平台的语言,而有了os模块,则不需要在意什么系统.并且os模块是用于 ...
- python常用模块:sys、os、path、setting、random、shutil
今日内容讲了3个常用模块 一.sys模块二.os模块三.os下path模块四.random模块五.shutil模块 一.sys模块 import sys #环境变量 print(sys.path) # ...
- 导包、时间模块【TIME、CALENDAR DATETIME】、SYS、OS, OS.PATH模块、项目开放周期&规范
导包 1.不考虑包的情况下直接from...直接导入文件夹下的具体模块 2. if __name__ == '__ma__' # 自执行 if __name__ == '模块名' # ...
- 模块使用:time、datetime、calendar、sys、os、os.path、normcase和normapath、random、json、pickle
## time:时间 时间戳(timestamp):time.time() 延迟线程的运行:time.sleep(secs) (指定时间戳下的)当前时区时间:time.localtime([secs] ...
- day18 time、datetime、calendar、sys、os、os.path模块
今日内容 时间模块 time模块 datetime模块 calendar模块 系统模块 sys模块 os模块 os.path模块 time模块: 在 time 模块中使用最多的方法有: time() ...
- python常用模块json、os、sys
一.序列化 json & pickle 模块 json--用于字符串和Python数据类型间进行转换 pickle---用于python特有的类型和Python的数据类型间进行转换 json: ...
随机推荐
- Web登录其实没那么简单
1. 一个简单的HTML例子看看用户信息安全 标准的HTML语法中,支持在form表单中使用<input></input>标签来创建一个HTTP提交的属性,现代的WEB登录中, ...
- 原生JS实现三级联动
代码实现 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...
- UART、SPI和I2C详解
做单片机开发时UART,SPI和I2C都是我们最经常使用到的硬件接口,我收集了相关的具体材料对这三种接口进行了详细的解释. UART UART是一种通用串行数据总线,用于异步通信.该总线双向通信,可以 ...
- 《React Native 精解与实战》书籍连载「React Native 底层原理」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 客户常用问题回答
A.系统有两个添加用户 一个是申请用户.一个是添加用户.这两个分别在什么情况下使用? 回答 1:不是所有的用户都是管理员添加的,特别是分公司多,部门多时,都由管理员添加,效率低,而且很容易输入不精确的 ...
- CSS scroll-behavior属性: 滚动框指定滚动行为
概念 当用户手动导航或者 CSSOM scrolling API 触发滚动操作时,CSS 属性 scroll-behavior 为一个滚动框指定滚动行为,其他任何的滚动,例如那些由于用户行为而产生的滚 ...
- 安装pandas时出现环境错误
在安装pandas时出现Could not install packages due to an EnvironmentErrorConsider using the `--user` option ...
- elasticsearch5.0版本的head安装
elasticsearch5.0版本的head安装 elasticsearch5.0版本由于刚出不久,并且与2.0版本的差距较大.所以,目前大家对5.0的一些使用还有所陌生.这里先把关于head插件的 ...
- 【学习总结】Git学习-参考廖雪峰老师教程三-创建版本库
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
- 【kindle笔记】之 《浪潮之巅》- 2018-1-
<浪潮之巅> 这本书推荐自最爱的政治课老师. 政治课老师张巍老师.我会一直记得你的. 以这样的身份来到这个学校,他人的质疑,自己的忐忑,老板的不公.犹犹豫豫谨小慎微地前进. 第一次听到这样 ...