Python 的 os 库常见使用方法(操作目录及文件)

news2025/5/21 2:55:10

前言:

os 模块是 Python 标准库中用于与操作系统交互的核心模块,提供了许多操作文件和目录的功能。以下是常见的使用方法:

1. 目录操作

方法功能说明示例
os.getcwd()获取当前工作目录print(os.getcwd())
os.chdir(path)切换当前工作目录os.chdir("/tmp")
os.listdir(path)列出目录下的文件和子目录files = os.listdir(".")
os.mkdir(path)创建单层目录os.mkdir("new_dir")
os.makedirs(path)递归创建多层目录os.makedirs("a/b/c")
os.rmdir(path)删除空目录os.rmdir("empty_dir")
os.removedirs(path)递归删除空目录os.removedirs("a/b/c")
os.path.isdir(path)判断是否为目录if os.path.isdir("dir"):

2. 文件操作

方法功能说明示例
os.remove(path)删除文件os.remove("file.txt")
os.rename(src, dst)重命名文件或目录os.rename("old.txt", "new.txt")
os.path.exists(path)判断路径是否存在if os.path.exists("file"):
os.path.isfile(path)判断是否为文件if os.path.isfile("file"):
os.path.getsize(path)获取文件大小(字节)size = os.path.getsize("file.txt")

3. 路径操作(os.path 子模块)

方法功能说明示例
os.path.join(a, b)拼接路径(跨平台兼容)path = os.path.join("dir", "file.txt")
os.path.abspath(path)获取绝对路径abs_path = os.path.abspath(".")
os.path.dirname(path)获取目录部分dir = os.path.dirname("/tmp/file.txt")
os.path.basename(path)获取文件名部分file = os.path.basename("/tmp/file.txt")
os.path.split(path)拆分目录和文件名dir, file = os.path.split("/tmp/file.txt")

案例1:通过os库方法获取平台信息

import os
# 1.os.set属性:获取本机操作系统的分隔符
print(os.sep) # \
# 2.os.name属性:获取本机操作系统的类型
print(os.name) # nt代表windows系统,posix代表Linux
# 3.os.getcwd()方法:获取当前工作目录
print(os.getcwd()) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件

案例2:通过os库方法对目录或文件进行增删改查

# 4.1 os.listdir() 方法:获取项目路径下所有文件和目录列表,并以列表的形式展示
print(os.listdir()) # ['1.os使用.py']
print(os.listdir("E:\\【书】【有用重要】2024软件测试接口自动化和UI自动化完整代码\\1.接口自动化 视频+ppt+源代码\\本书的学习流程.txt")) # 获取指定盘符下的所有文件和目录列表,并以列表形式展示
# 4.2 os.mkdir()方法创建目录文件
os.mkdir("testcase") # 当前路径下创建一个名为“testcase”的目录
os.mkdir("E:\\testcast")
# 4.3 os.rmdir()方法:删除一个空目录
os.rmdir("testcase") # 删除当前项目路径下空目录文件testcase
os.rmdir("E:\\testcast") # 删除指定路径下,空目录文件testcase
# 4.4 os.remove()方法:删除指定文件
os.remove("123.txt") # 删除当前项目路径下的"123.txt"文件
os.remove("E:\\data\\2.doc")
# 4.5 os.rename()方法:重命名目录或文件 os.rename("原目录名","新目录名")
os.rename("score002.txt","score001.txt")

案例3:通过os.path子模块来操作目录及文件


# 1.__file__特殊成员:返回当前文件的全路径
print(__file__) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件\1.os使用.py
# 2.os.path.dirname(__file__)方法:返回文件所在目录
print(os.path.dirname(__file__)) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件
print(os.path.dirname(os.path.dirname(__file__))) # 文件所在目录的上一级目录 D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject
# 3. os.path.abspath(__file__)方法:返回文件绝对路径
print(os.path.abspath(__file__)) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件\1.os使用.py
# 4.os.path.dirname(os.path.abspath(__file__)) 组合 :返回当前文件所在目录
print(os.path.dirname(os.path.abspath(__file__))) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件
# 5.os.path.json() 路径拼接  os.path.join(目录 + 文件名)
print(os.path.join(os.path.dirname(os.path.abspath(__file__)),"Test.py")) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件\Test.py
# 6.os.path.exists() 判断路径是否存在
os.path.isfile()# 是否为文件
os.path.isdir() # 是否为目录

conf_file = os.path.abspath(__file__) # 文件路径完整
conf_path = os.path.dirname(conf_file) # 文件目录
conf_file1 = os.path.join(conf_path,"score001.txt") # 目录+文件名,拼的文件完整路径
conf_path1 = os.path.dirname(os.path.dirname(conf_path)) # 上级目录
conf_file2 = conf_path1 + os.sep + "接口自动化" +os.sep+"score001.txt" # 系统分割符os.sep,拼完整路径

os.path.exists(conf_file) # 存在
os.path.exists(conf_path) # 存在
os.path.isfile(conf_file1) # 是否为文件False, 拼的文件完整路径
os.path.isdir(conf_path1) # 是目录True

End

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2380402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Linux安装并配置Redis

目录 1.安装 2.启动服务 3.配置 3.1.绑定地址 3.2.保护模式 3.3.持久化选项 3.3.1.RDB 持久化 3.3.2.AOF 持久化 3.3.3.如何选择 1.安装 Redis 可以从默认的 CentOS 软件仓库中安装。运行以下命令来安装 Redis sudo dnf install redis -y 响应如下 2.启动服务 安装完成后&…

【11408学习记录】考研英语辞职信写作三步法:真题精讲+妙句活用+范文模板

应聘信 英语写作2005年考研英语真题小作文写作思路第一段第二段妙句7 9妙句11补充3补充4 第三段 妙句成文 每日一句词汇第一步:找谓语第二步:断句第三步:简化主句原因状语从句 英语 写作 2005年考研英语真题小作文 Directions:​​ Two m…

《黑马前端ajax+node.js+webpack+git教程》(笔记)——node.js教程+webpack教程(nodejs教程)

黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajaxnode.jswebpackgit),一套全覆盖 文章目录 Node.js与Webpack-01.Node.js入门定义和作用什么是前端工程化?(离不开node.js)Node.…

Flink 快速入门

本文涉及到大量的底层原理知识,包括运行机制图解都非常详细,还有一些实战案例,所以导致本篇文章会比较长,内容比较多,由于内容太多,很多目录可能展示不出来,需要去细心的查看,非常适…

阻塞队列:线程安全与生产者消费者模型解析

一、阻塞队列 阻塞队列就是基于普通队列做出扩展 1.线程安全的 如果针对一个已经满了的队列进行入队列,此时入队列操作就会阻塞,一直阻塞到队列不满(其他线程出队列元素)之后 如果针对一个已经空了的队列进行出队列&#xff0c…

【入门|Docker】基础知识扫盲:什么是 Docker?

文章目录 基础知识扫盲:什么是 Docker?Docker 是什么?Docker 核心组件Docker 与虚拟机的区别Docker 在现代开发中的核心角色Docker 的局限性 基础知识扫盲:什么是 Docker? 最近打算开始系统性地学习与云计算相关的技术…

【MYSQL】基本查询,表的增删查改

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 |🗃️ mysql 摘要:本文详细介绍了MySQL中的CRUD操作(创…

Android Studio 日志系统详解

文章目录 一、Android 日志系统基础1. Log 类2. 日志级别 二、Android Studio 中的 Logcat1. 打开 Logcat2. Logcat 界面组成3. 常用 Logcat 命令 三、高级日志技巧1. 自定义日志工具类2. 打印方法调用栈3. 打印长日志4. JSON 和 XML 格式化输出 四、Logcat 高级功能1. 自定义日…

Feign异步模式丢失上下文问题

Feign异步模式丢失上下文问题 问题描述 当我们使用异步对我们代码进行操作优化时,代码中使用了RequestContextHolder去获取上下文的数据,当我们执行原来可以执行的业务时发现报了空指针异常或数据为空,这是为什么呢? 原理解释 …

【AWS入门】Amazon SageMaker简介

【AWS入门】Amazon SageMaker简介 [AWS Essentials] Brief Introduction to Amazon SageMaker By JacksonML 机器学习(Machine Learning,简称ML) 是当代流行的计算机科学分支技术。通常,人们在本地部署搭建环境,以满足机器学习的要求。 AWS…

MYSQL 故障排查与生产环境优化

目录 一.前置知识点 1. 案例需求 (1)mysql 常见故障解决 (2)mysql 性能优化 2.案例实施思路 (1)单库常见故障分析 (2)主从常见故障分析 (3)从几个不同…

解决使用@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss“, timezone = “GMT+8“)时区转换无效的问题

前言 对于一些时间的字段,我们从数据库查询出来通常需要转换后返回给前端展示,前端需要的格式一般为yyyy-MM-dd HH:mm:ss,可以通过JsonFormat注解来作转换和时区转换。 问题场景 原因 LocalDateTime类本身不带时区信息所以转换无效 解决办…

计算机网络概要

⽹络相关基础知识 协议 两设备之间使⽤光电信号传输信息数据 要想传递不同信息 那么⼆者ᳵ就需要约定好的数据格式 层 封装 继承 多态是计算机的性质 它们⽀持了软硬件分层的实现 同层协议可以ᳵ接通信 同层协议ᳵ不直接通信 是各⾃调⽤下层提供的结构能⼒完成通信 分层…

Word压缩解决方案

Word压缩解决方案:基于图片压缩的 .docx 优化实践 📌 背景 在日常科研写作或项目文档整理中,Word 文档(.docx)往往因为插入大量高清图表、扫描图像、公式图等导致文件体积过大,或者毕业学位论文查重要求上…

TDengine 2025年产品路线图

TDengine OSS 之 2025 年年度路线图如下表所示。 季度功能2025Q1 虚拟表查询能力:REGEXP、GREATEST、LEAST、CAST 函数支持判断表达式、单行选择函数的其他列值、INTERP 支持插值时间范围存储能力:支持将查询结果写入超级表、超级表支持 KEEP 参数、STM…

Ubuntu服务器部署多语言项目(Node.js/Python)方式实践

Ubuntu服务器部署多语言项目(Node.js/Python)方式实践 服务器脚本运行方式命令行直接执行nohup后台执行进程 Screen概述安装基本操作命令启动 Screen退出当前会话(不终止进程)查看所有会话重连会话关闭会话 常用快捷键典型使用场景…

计算机网络 - 2.基础协议

1.TCP协议 1.TCP(Transmission Control Protocol):传输控制协议2.TCP协议是一种面向连接的、可靠的、 基于字节流的传输层通信协议 1.面向连接:两个使用TCP协议的应用(通常一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接2.可靠的 1.数据传输之前都要建立…

初识css,css语法怎样学好css以及常见问题与避坑

一、CSS 是什么? CSS(Cascading Style Sheets)是一种用于描述网页文档(HTML 或 XML)呈现样式的语言。它负责控制网页元素的视觉表现,如颜色、字体、布局等,使内容与展示分离。 二、CSS 语法结构…

Axure疑难杂症:垂直菜单展开与收回(4大核心问题与专家级解决方案)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:垂直菜单展开与收回 主要内容:超长菜单实现、展开与收回bug解释、Axure9版本限制等问题解…

vue2.0 组件生命周期

个人简介 👨‍💻‍个人主页: 魔术师 📖学习方向: 主攻前端方向,正逐渐往全栈发展 🚴个人状态: 研发工程师,现效力于政务服务网事业 🇨🇳人生格言&…