零基础小白必看:python基本操作-文件、目录及路径( 三 )
注意 open/read/close 需要一起操作 , 其中 open 操作需要指定模式 , 上述是以读写模式打开文件 , 若文件不存在则创建文件 。 各模式具体如下:
flags -- 该参数可以是以下选项 , 多个使用 "|" 隔开:
- os.O_RDONLY: 以只读的方式打开
- os.O_WRONLY: 以只写的方式打开
- os.O_RDWR : 以读写的方式打开
- os.O_NONBLOCK: 打开时不阻塞
- os.O_APPEND: 以追加的方式打开
- os.O_CREAT: 创建并打开一个新文件
- os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
- os.O_EXCL: 如果指定的文件存在 , 返回错误
- os.O_SHLOCK: 自动获取共享锁
- os.O_EXLOCK: 自动获取独立锁
- os.O_DIRECT: 消除或减少缓存效果
- os.O_FSYNC : 同步写入
- os.O_NOFOLLOW: 不追踪软链接
>>> f = os.open("test/test.txt", os.O_RDWR|os.O_CREAT)# 若文件不存在 , 则创建>>> os.close(f)复制代码
3.3 修改操作- open/write/close :写入文件内容
- rename, renames : 与前面介绍的修改名称、移动操作一致 。
>>> f = os.open("test/test.txt", os.O_RDWR|os.O_CREAT)# 打开文件>>> os.write(f,b"test write data")# 写入内容15>>> os.close(f)# 关闭文件复制代码
3.4 删除- remove :删除文件 , 注意不能删除目录(使用 rmdir/removedirs)
>>> os.remove("test/test-1")# 删除目录报错Traceback (most recent call last):File "", line 1, in FileNotFoundError: [WinError 2] 系统找不到指定的文件 。 : 'test/test1'>>> os.remove("test/test.txt")# 删除文件>>> os.listdir("test")['test-1']复制代码
4 路径操作在使用文件或目录过程中 , 经常需要对文件及目录路径进行处理 , 因此 , os 中有一个子模块 path , 专门就是处理路径操作的 。 主要有以下操作:- abspath :返回绝对路径
>>> os.path.abspath("test")'E:\\pythontest\\test'复制代码
- exists :判断文件或目录是否存在
>>> os.path.exists("test")True>>> os.path.exists("test/test.txt")False>>> os.path.exists("test/test-1/test-1.txt")True复制代码
- isfile/isdir :判断是否为文件/目录
>>> os.path.isdir("test")True>>> os.path.isfile("test/test-1/test-1.txt")True复制代码
- basename/dirname:获取路径尾部和路径头部 。 其实就是以路径中最后一个 / 为分割符 , 分为头(head) 和尾(tail)两部分 , tail 是 basename 返回的内容 , head 是 dirname 返回的内容 。 经常用于获取文件名 , 目录名等操作
>>> os.path.basename("test/test-1/test-1.txt")# 文件名'test-1.txt'>>> os.path.basename("test/test-1/")# 空内容''>>> os.path.basename("test/test-1")# 目录名'test-1'>>> os.path.dirname("test/test-1/test-1.txt")# 文件所在目录路径'test/test-1'>>> os.path.dirname("test/test-1/")# 目录路径'test/test-1'>>> os.path.dirname("test/test-1")# 父目录路径'test'复制代码
- join :合成路径 , 即把两个参数使用系统路径分割符进行连接 , 形成完整路径 。
>>> os.path.join("test","test-1")# 连接两个目录'test\\test-1'>>> os.path.join("test\\test-1","test-1.txt")# 连接目录与文件名'test\\test-1\\test-1.txt'复制代码
- 视频小白们的外挂装备:百视悦R5监视器+T2提词器套装上手
- 市科委与联影集团联合首设“探索者计划”,共推基础及应用基础研究
- 从事Java开发时发现基础差,是否应该选择辞职自学一段时间
- 大力发展新型基础设施建设“数字浙江”再添新引擎
- 「新书推荐」5G安全:5G生态的重要组成部分和5G发展的关键基础条件
- 新人必看,一个接触币圈2年的人花钱买来的教训
- 微软Surface Pro 8基础版规格或升级 酷睿i3+8GB运存
- 昆明2500万元奖补新能源汽车充电基础设施建设
- 实验|国家重大科技基础设施项目!中国锦屏地下实验室二期开工建设
- 视频小白的第一次相机稳定器使用:飞宇AK2000C体验