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

前言:

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.mzph.cn/diannao/83810.shtml

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

相关文章

vue3 el-table实现字段可编辑

在Vue 3中,如果你想让el-table(Element Plus的表格组件)的字段可编辑,你可以通过以下方式来实现: 使用cell-mouse-enter和cell-mouse-leave事件动态显示编辑图标或控件 你可以在鼠标进入单元格时显示一个编辑图标或输…

基于shardingsphere的分库分表方案

一、准备docker容器 启动两个mysql的docker容器 docker run -v /root/mysql_volume/data:/var/lib/mysql -v /root/mysql_volume/conf:/etc/mysql/conf.d -v /root/mysql_volume/my.cnf:/etc/my.cnf -p 3306:3306 --name mysql --restartalways --privilegedtrue -e MYSQL_RO…

SearxNG本地搜索引擎

SearxNG 是一个强大、开源的 元搜索引擎(meta search engine),它不会存储用户信息,注重隐私保护,并支持从多个搜索引擎聚合结果,用户可以自建部署,打造一个无广告、可定制的搜索平台。 🔍 什么是 SearxNG? SearxNG 是 Searx 的一个积极维护的分支(fork),意在改进…

Vue3.5 企业级管理系统实战(十九):菜单管理

篇幅原因,本节先探讨菜单管理页面增删改查相关功能,角色菜单,菜单权限,动态菜单等内容放在后面。 1 菜单 api 在 src/api/menu.ts 中添加菜单 api,代码如下: //src/api/menu.ts import service from &qu…

【android bluetooth 协议分析 01】【HCI 层介绍 8】【ReadLocalVersionInformation命令介绍】

1. HCI_Read_Local_Version_Information 命令介绍 1. 功能(Description) HCI_Read_Local_Version_Information 命令用于读取本地 Bluetooth Controller 的版本信息,包括 HCI 和 LMP 层的版本,以及厂商 ID 和子版本号。 这类信息用…

React底层架构深度解析:从虚拟DOM到Fiber的演进之路

一、虚拟DOM:性能优化的基石 1.1 核心工作原理 React通过JSX语法将组件转换为轻量级JavaScript对象(即虚拟DOM),而非直接操作真实DOM。这一过程由React.createElement()实现,其结构包含元素类型、属性和子节点等信息&a…

从AlphaGo到ChatGPT:AI技术如何一步步改变世界?

从AlphaGo到ChatGPT:AI技术如何一步步改变世界? 这里给大家分享一个人工智能学习网站。点击跳转到网站。 https://www.captainbed.cn/ccc 前言 在科技发展的历史长河中,人工智能(AI)技术无疑是最为璀璨的明珠之一。从…

关于在Unity项目中使用Post Processing插件打包到web端出现的问题

关于在Unity项目中使用Post Processing插件打包到web端出现的问题 解决方法:是不激活摄像机上的Post Processing有关组件,拉低场景中的Directional Light平行光的强度进行web端打包。 (烘焙灯光时是可以激活。) web端支持这个Pos…

MySQL - 如何突破单库性能瓶颈

数据库服务器硬件优化 我们来看看对数据库所在的服务器是如何进行优化的,服务器是数据库的宿主,其性能直接影响了数据库的性能,所以服务器的优化也是数据库优化的第一步。 数据库服务器通常是从 CPU、内存、磁盘三个角度进行硬件优化的&…

用 CodeBuddy 搭建「MiniGoal 小目标打卡器」:一次流畅的 UniApp 开发体验

我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 在日常生活中,我们总是希望能够坚持一些小习惯,比如每天锻炼十分钟、读一页书、早睡十分…

OpenCV 环境搭建与概述

// //OpenCV-4.11.0 C VS2019 // 一、OpenCV学习路线 1、入门: OpenCV图像读写、视频读写、基本像素处理、基本卷积处理、基本C开发知识。 2、初级: OpenCV自定义卷积操作、图像梯度、边缘提取、二值分析、视频分析、形态学处理、几何变换与透视变换。 3、中级: 角点查找、BL…

如何快速更换电脑浏览器ip:教程与注意事项

无论是为了访问地域限制内容、保护隐私,还是解决网络问题,快速更换浏览器IP地址的需求日益增多。以下是快速更换电脑浏览器IP地址的几种常用方法及注意事项,结合了多种场景下的解决方案: 一、快速更换浏览器IP的方法 1. 代理服务…

【kafka】kafka概念,使用技巧go示例

1. Kafka基础概念 1.1 什么是Kafka? Kafka是一个分布式流处理平台,用于构建实时数据管道和流式应用。核心特点: 高吞吐量:每秒可处理百万级消息持久化存储:消息按Topic分区存储在磁盘分布式架构:支持水平…

掌握Git:版本控制与高效协作指南

一、初始Git 提出问题:无论是在工作还是学习,我们在编写各种文档的时候,更改失误,失误后恢复到原来版本,不得不复制出一个副本。 每个版本由各自的内容,但最终只有一个报告需要被我们使用。 但在此之前的…

【生活相关-日语-日本-东京-搬家后-引越(ひっこし)(3)-踩坑点:国民健康保险】

【生活相关-日语-日本-东京-搬家后-引越(ひっこし)(3)-注意点:国民健康保险】 1、前言2、情况说明(1)问题说明(2)情况说明(1)收到情况&#xff08…

linux——mysql故障排查与生产环境优化

目录 一,mysql数据库常见的故障 1,故障现象1 2,故障现象2 3,故障现象3 4,故障现象4 5,故障现象5 6,故障现象6 二&…

【C#】用 DevExpress 创建带“下拉子表”的参数表格视图

展示如何用 DevExpress 创建带“下拉子表”的参数表格视图。主表为 参数行 ParamRow,子表为 子项 ChildParam。 一、创建模型类 public class ParamRow {public string Pn { get; set; }public string DisplayName { get; set; }public string Value { get; set; }…

【JavaScript】用 Proxy 拦截对象属性

目录 一、Proxy 的基本结构(打地基) 二、最常用的两个拦截方法:get 和 set 1. get(target, key) 2. set(target, key, value) 三、说到这,那就可以回到题目来 四、什么是 Reflect? 总结不易,本章节对…

[IMX] 02.GPIO 寄存器

目录 手册对应章节 1.GPIO 复用(引脚功能选择)- IOMUXC_SW_MUX_CTL_PAD_xxx 2.GPIO 电气特性 - IOMUXC_SW_PAD_CTL_PAD_xxx 3.GPIO 数据与控制寄存器 3.1.数据 - DR 3.2.输入/输出选择 - GDIR 3.3.状态 - PSR 3.4.中断触发控制 - ICR 3.5.中断使…

Tomcat 配置 HTTPS 访问全攻略(CentOS 环境)

Tomcat 配置 HTTPS 访问全攻略(CentOS 环境) 一、环境说明 操作系统:CentOS Tomcat 版本:Apache Tomcat/9.0.105 服务器 IP:192.168.1.35 目标:将 Tomcat 默认的 HTTP 访问升级为 HTTPS,提…