【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…...
VSCode光标主题定制指南:从颜色令牌到扩展开发
1. 项目概述:一个为开发者定制的光标主题集合如果你和我一样,每天有超过8小时的时间都泡在代码编辑器里,那么你一定会对编辑器里那个千篇一律的、闪烁的竖线光标感到审美疲劳。warrenwoodhouse/cursors这个项目,就是来解决这个“小…...
别再依赖SDK了!手把手教你用OpenCV和Eigen从零实现RGB-D相机对齐(附完整C++代码)
从零实现RGB-D相机对齐:OpenCV与Eigen实战指南 在计算机视觉领域,RGB-D相机的深度与彩色图像对齐(D2C)是一个基础但至关重要的技术环节。虽然市面上大多数商用RGB-D相机都提供了现成的SDK和API来实现这一功能,但对于真…...
Forge模组开发效率提升:Gradle插件自动化构建与热部署实践
1. 项目概述:一个为Forge模组开发者准备的“瑞士军刀”如果你是一名Minecraft Forge模组的开发者,或者你正打算踏入这个充满创造力的领域,那么你大概率经历过这样的场景:为了测试一个简单的功能改动,你需要反复地执行g…...
从零到一:基于GD32E230核心板的PCB设计实战与模块化解析
1. GD32E230核心板硬件设计基础 第一次拿到GD32E230这颗国产MCU时,说实话有点小激动。作为兆易创新基于Cortex-M23内核的拳头产品,它用55nm工艺把芯片面积压缩到了惊人的3x3mm,却集成了5个定时器、2个SPI、2个I2C这些实用外设。我在去年一个智…...
Go语言缓存雪崩:防止缓存失效
Go语言缓存雪崩:防止缓存失效 1. 雪崩防护 type CacheWithProtection struct {cache *RedisCachemu sync.Mutexlocks map[string]*sync.Mutex }func NewCacheWithProtection(cache *RedisCache) *CacheWithProtection {return &CacheWithProtect…...
Iris API错误处理机制与嵌入式系统优化实践
1. Iris API错误处理机制解析在嵌入式系统开发中,API的健壮性直接影响整个系统的稳定性。Iris框架作为ARM架构下的核心组件,其错误处理机制基于JSON-RPC 2.0规范进行了深度定制,特别适合资源受限的嵌入式环境。与通用Web API不同,…...
从零构建可定制对话系统:架构设计、RAG与智能体实战
1. 项目概述:从零构建一个可定制的对话系统最近在折腾一个挺有意思的东西,我把它叫做“customized-chat”。这名字听起来可能有点泛,但它的核心目标非常明确:打造一个完全由你自己掌控、能深度融入你特定业务逻辑或知识体系的对话…...
数据中心碳减排:工作负载迁移与服务器调度优化
1. 数据中心碳减排技术概述 在数字经济时代,数据中心作为信息基础设施的核心载体,其能源消耗和碳排放问题日益凸显。据统计,全球数据中心电力消耗已占全球总用电量的1-2%,且随着AI、云计算等技术的快速发展,这一比例仍…...
天学网口碑好不好?2026年最新用户实测反馈给你答案
作为深耕教育数字化落地领域5年的从业者,最近后台收到不少公立校电教组老师、学生家长的提问:主打AI英语教学的天学网口碑到底怎么样?刚好我们团队刚做完2026年第一季度的英语教育数字化工具落地效果调研,结合一手实测数据给大家客…...
Legacy-iOS-Kit完整指南:如何让老旧iPhone和iPad重获新生
Legacy-iOS-Kit完整指南:如何让老旧iPhone和iPad重获新生 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …...
