【100天精通python】Day20:文件及目录操作_os模块和os.psth模块,文件权限修改
目录
专栏导读
1 文件的目录操作
os模块的一些操作目录函数编辑
os.path 模块的操作目录函数
2 相对路径和绝对路径
3 路径拼接
4 判断目录是否存在
5 创建目录、删除目录、遍历目录
专栏导读

专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html

1 文件的目录操作
在Python中,os模块和os.path模块是两个常用的模块,用于进行文件和目录操作。
os模块:
os模块提供了许多用于操作操作系统功能的函数。它允许您执行文件和目录操作,创建和删除目录,获取当前工作目录,执行系统命令等。- 该模块提供了一种跨平台的方法来访问操作系统功能,因此可以在不同的操作系统上运行相同的Python代码。
os.path模块:
os.path模块提供了用于处理文件路径和目录路径的函数。它不执行实际的文件或目录操作,而是提供了一些有用的方法来处理路径字符串。- 该模块可以用于检查文件或目录是否存在,获取文件名或目录名,获取文件的扩展名,拼接路径等操作。
下面是一些常用的函数示例:
import os# os模块示例
os.mkdir('new_directory') # 创建目录
os.rmdir('directory_to_delete') # 删除目录
contents = os.listdir('directory_to_list') # 列出目录内容
os.chdir('new_working_directory') # 更改当前工作目录# os.path模块示例
file_path = 'path/to/file.txt'
dir_path = 'path/to/directory'
print(os.path.exists(file_path)) # 检查文件是否存在
print(os.path.basename(file_path)) # 获取文件名
print(os.path.dirname(file_path)) # 获取文件所在目录
print(os.path.splitext(file_path)) # 获取文件扩展名
print(os.path.join(dir_path, 'new_file.txt')) # 拼接路径
假设在当前工作目录下有一个名为directory_to_list的目录,该目录中包含一些文件和子目录,如file.txt等。假设当前工作目录已更改为new_working_directory,而且目录new_directory已被创建。
示例输出如下:
True # 文件'to/file.txt'存在
file.txt # 获取文件名
path/to # 获取文件所在目录
('path/to/file', '.txt') # 获取文件扩展名
path/to/directory/new_file.txt # 拼接路径
注意,
os.path模块中的函数可以直接在不同的操作系统上使用,因为它们会根据操作系统自动处理路径分隔符。而os模块中的函数可能在不同操作系统上有不同的行为,需要小心使用。
os模块的一些操作目录函数
os.path 模块的操作目录函数

2 相对路径和绝对路径
在计算机文件系统中,路径用于定位文件或目录的位置。Python中的路径可以分为相对路径和绝对路径。
- 相对路径(Relative Path): 相对路径是相对于当前工作目录(当前脚本所在目录)的路径。它不包含完整的文件系统路径,而是指定文件或目录相对于当前位置的位置。
例如,假设当前工作目录为/home/user/Documents,而目标文件file.txt位于该目录下,则可以使用相对路径file.txt来指定该文件。相对路径没有以根目录(如/)开头,而是从当前位置开始描述路径。
- 绝对路径(Absolute Path): 绝对路径是指从根目录开始描述文件或目录的完整路径。它包含文件系统的完整路径信息。
例如,假设目标文件file.txt位于/home/user/Documents目录下,绝对路径将是/home/user/Documents/file.txt。
Python中可以使用os模块来处理路径,例如:
import os# 获取当前工作目录
current_dir = os.getcwd()
print("当前工作目录:", current_dir)# 使用相对路径
relative_path = "file.txt" # 文件所在的相对路径
file_path = os.path.join(current_dir, relative_path)
print("文件路径:", file_path)# 使用绝对路径
absolute_path = "/home/user/Documents/file.txt"
file_path = os.path.abspath(absolute_path)
print("绝对路径:", file_path)
假设当前工作目录为/home/user/Documents,文件file.txt位于该目录下,则代码的预期输出结果应该是:
当前工作目录: /home/user/Documents
文件路径: /home/user/Documents/file.txt #当前工作目录+相对路径(file.txt)
绝对路径: /home/user/Documents/file.txt
3 路径拼接
在Python中,可以使用os.path.join()函数来拼接路径。这个函数会根据当前操作系统的规范正确地拼接路径,并自动处理路径分隔符。
示例代码:
import os# 定义目录和文件名
directory = "/home/user/Documents"
filename = "file.txt"# 使用os.path.join()拼接路径
file_path = os.path.join(directory, filename)# 打印结果
print("拼接后的路径:", file_path)
输出结果为:

在上面的示例中,
os.path.join()函数会将directory和filename两个部分拼接成完整的文件路径,并且自动处理路径分隔符,确保路径的正确性。
4 判断目录是否存在
在Python中,你可以使用os.path.exists()函数来判断一个目录是否存在。这个函数接受一个目录路径作为参数,如果该目录存在,则返回True,否则返回False。
import os# 定义目录路径
directory = "/path/to/directory"# 判断目录是否存在
if os.path.exists(directory):print("目录存在")
else:print("目录不存在")
5 创建目录、删除目录、遍历目录
在Python中,你可以使用os.mkdir()函数来创建目录,使用os.rmdir()函数来删除目录,以及使用os.listdir()函数来遍历目录中的文件和子目录。
5.1 创建目录示例代码:
import os# 定义目录路径
directory = "/path/to/new_directory"# 创建目录
os.mkdir(directory)
print("目录已创建")
5.2 删除目录示例代码:
import os# 定义目录路径
directory = "/path/to/directory_to_delete"# 删除目录
os.rmdir(directory)
print("目录已删除")
5.3 遍历目录示例代码:
import os# 定义目录路径
directory = "/path/to/directory_to_traverse"# 遍历目录
for filename in os.listdir(directory):filepath = os.path.join(directory, filename)if os.path.isfile(filepath):print("文件:", filename)elif os.path.isdir(filepath):print("子目录:", filename)
请确保将/path/to/new_directory、/path/to/directory_to_delete和/path/to/directory_to_traverse分别替换为你想要创建、删除和遍历的目录路径。
下一篇:介绍文件的批量处理,文件的权限修改等高级文件操作。
相关文章:
【100天精通python】Day20:文件及目录操作_os模块和os.psth模块,文件权限修改
目录 专栏导读 1 文件的目录操作 os模块的一些操作目录函数编辑 os.path 模块的操作目录函数 2 相对路径和绝对路径 3 路径拼接 4 判断目录是否存在 5 创建目录、删除目录、遍历目录 专栏导读 专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12…...
回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测
回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测 目录 回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于PSO-GPR基于粒子群算法优化高斯过程回归的数据回归预…...
python_PyQt5开发验证K线视觉想法工具V1.1 _增加标记类型_线段
目录 运行情况: 代码: 承接 【python_PyQt5开发验证K线视觉想法工具V1.0】 博文 https://blog.csdn.net/m0_37967652/article/details/131966298 运行情况: 添加线段数据在K线图中用线段绘制出来 代码: 1 线段标记的数据格式…...
中文多模态医学大模型智能分析X光片,实现影像诊断,完成医生问诊多轮对话
项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实…...
企业服务器数据库被360后缀勒索病毒攻击后采取的措施
近期,360后缀勒索病毒的攻击事件频发,造成很多企业的服务器数据库遭受严重损失。360后缀勒索病毒是Beijingcrypt勒索家族中的一种病毒,该病毒的加密形式较为复杂,目前网络上没有解密工具,只有通过专业的技术人员对其进…...
FFmpeg-两个文件mix重采样以那个为主
ffmpeg -i 2ch-44.1k.wav -i 2ch-16k.wav -filter_complex " \ [0:a][1:a]amixinputs2[aout]" \ -map [aout] -f null -ffmpeg -i 2ch-44.1k.wav -i 2ch-16k.wav -filter_complex " \ [0:a][1:a]amixinputs2[aout]" \ -map [aout] -f null -对比发现&#…...
【WebGL】初探WebGL,我了解到这些
WebGL(Web图形库)是一种强大的技术,允许您在Web浏览器中直接创建交互式的3D图形和动画。它利用现代图形硬件的能力来呈现令人惊叹的视觉效果,使其成为Web开发人员和计算机图形爱好者必备的技能。 WebGL基础知识 WebGL基于OpenGL …...
fwft fifo和standard fifo
fifo共有两种,分别是standard fifo和fwft fifo,其中,前者的latency=1,即rd_en信号有效且fifo非空时,数据会在下一个周期出现在fifo的读数据端口。而后者,即fwft fifo的latency=0,也就是说,rd_en信号有效的当拍,数据就会出现在读端口上。这里,fwft是First-word-Fall-T…...
pdf阅读器哪个好用?这个阅读器别错过
pdf阅读器哪个好用?PDF是一种流行的文件格式,可以保留文档的原始格式、布局和字体。与其他文档格式相比,PDF在不同设备和操作系统上的显示效果更为一致,确保文档内容的准确性和可读性。在阅读一些PDF文件的时候,使用一…...
【LeetCode】下降路径最小和
下降路径最小和 题目描述算法分析编程代码 链接: 下降路径最小和 题目描述 算法分析 编程代码 class Solution { public:int minFallingPathSum(vector<vector<int>>& matrix) {int n matrix.size();vector<vector<int>> dp(n1,vector(n2,INT_M…...
从0到1开发go-tcp框架【2-实现Message模块、解决TCP粘包问题、实现多路由机制】
从0到1开发go-tcp框架【2-实现Message模块、解决TCP粘包问题、实现多路由机制】 1 实现\封装Message模块 zinx/ziface/imessage.go package zifacetype IMessage interface {GetMsdId() uint32GetMsgLen() uint32GetMsgData() []byteSetMsgId(uint32)SetData([]byte)SetData…...
Boost开发指南-3.6weak_ptr
weak_ptr weak_ptr是为配合shared_ptr而引入的一种智能指针,它更像是shared_ptr的一个助手而不是智能指针,因为它不具有普通指针的行为,没有重载 operator*和->。它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使…...
Swift 周报 第三十三期
文章目录 前言新闻和社区App 内购买项目和订阅即将实行价格与税率调整为家庭提供安全的 App 体验 提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组自主整理周报的第二十四期,每个模块已初步成型。各位读者如果有好的提议ÿ…...
网络空间安全及计算机领域常见英语单词及短语——网络安全(一)
目录 网络空间安全常见英语单词没事儿读着玩儿相关知识扫盲 CSDN的小伙伴们,我快回来咯!网络空间安全常见英语单词 Cybersecurity 网络安全Network security 网络安全Information security 信息安全Data protection 数据保护Threat analysis 威胁分析Ri…...
Go基准测试Benchmark
Go语言自带了一个强大的测试框架,其中包括基准测试(Benchmark)功能,基准测试用于测量和评估一段代码的性能。 我们可以通过在Go的测试文件中编写特殊格式的函数来创建基准测试。测试文件的命名遵守原函数名称_test.go 的格式。 基…...
docker容器的基本操作
一、查看Docker的版本信息 [roothuyang1 ~]# docker version 二、查看docker的详细信息 [roothuyang1 ~]# docker info 三、Docker镜像操作 Docker创建容器前需要本地存在对应的镜像,如果本地加载不到相关镜像,Docker默认就会尝试从镜像仓库https://hu…...
MySQL绿色安装和配置
1、 从地址http://dev.mysql.com/downloads/mysql/中选择windows的版本下载。 2、 mysql各个版本的简介 (1) MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。 (2) MySQL Enterprise Ed…...
《cuda c编程权威指南》03 - cuda小功能汇总
1. 计时 1.1 linux #include <sys/time.h>double cpuSecond() {struct timeval tp;gettimeofday(&tp, NULL);return ((double)tp.tv_sec (double)tp.tv_usec*1e-6); }// 调用 double start cpuSecond(); kernel_name << <grid, block >> > (ar…...
Java:Java程序通过执行系统命令调用Python脚本
本文实现功能:Java程序调用Python脚本 Python脚本 import sysdef add(x, y):return x yif __name__ "__main__":print(add(int(sys.argv[1]), int(sys.argv[2])))直接执行 $ python math.py 1 2 3Java程序调用Python脚本 package io.github.mouday.…...
this is incompatible with sql_mode=only_full_group_by
查看配置 select global.sql_mode 在sql命令行中输入select sql_mode 能够看到sql_mode配置,如果有ONLY_FULL_GROUP_BY,则需要修改 在mysql5.7.5后,ONLY_FULL_GROUP_BY是默认选项,所以就会导致group by的问题 set sql_mode‘复制去掉ONLY_F…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
