Python新手必备:掌握os.path模块的8个神奇函数

python os.path.basename(获取路径中的文件名部分) 详解 是 Python 的 os 模块中的一个函数,用于获取路径中的文件名部分。它会去掉路径中的目录部分,只返回最后的文件名或目录名。 阅读详情
AI摘要

本文介绍了Pythonos.path模块中的8个核心函数,包括路径拼接、获取绝对路径、文件名和目录名提取、路径存在检查以及文件和目录类型的判断,有助于理解和在实际项目中高效使用。,

在Python编程中,os.path模块是一个非常重要的模块,它提供了用于处理文件路径和目录的函数。这些函数可帮助你执行各种文件和目录操作,例如文件检查、路径拼接、目录创建等。

本文将介绍os.path模块中最常用的8个内置函数,并附带丰富的示例代码,方便更好地理解它们的用法。

1. os.path.join() - 拼接路径

os.path.join()函数用于拼接一个或多个路径组件,生成一个合法的路径。这对于在不同操作系统上构建路径非常有用,因为它会自动处理斜杠(/或\)的差异。

示例代码:

import os

path = os.path.join("folder", "subfolder", "file.txt")
print(path)

这将在不同操作系统上生成适当的路径,如:

  • 在Windows上:folder\subfolder\file.txt
  • 在Linux或macOS上:folder/subfolder/file.txt

2. os.path.abspath() - 获取绝对路径

os.path.abspath()函数用于获取指定路径的绝对路径。绝对路径是从文件系统根目录开始的完整路径,可用于解析相对路径。

示例代码:

import os

path = "folder/file.txt"
absolute_path = os.path.abspath(path)
print(absolute_path)

这将返回指定文件的绝对路径,如/home/user/folder/file.txt。

3. os.path.basename() - 获取文件名

os.path.basename()函数用于从给定路径中提取文件名部分。

示例代码:

import os

path = "/path/to/folder/file.txt"
file_name = os.path.basename(path)
print(file_name)

这将返回文件名,如file.txt。

4. os.path.dirname() - 获取目录名

os.path.dirname()函数用于从给定路径中提取目录名部分。

示例代码:

import os

path = "/path/to/folder/file.txt"
directory = os.path.dirname(path)
print(directory)

这将返回目录名,如/path/to/folder。

5. os.path.exists() - 检查路径是否存在

os.path.exists()函数用于检查指定的路径是否存在。

示例代码:

import os

path = "/path/to/nonexistent/file.txt"
if os.path.exists(path):
    print("Path exists.")
else:
    print("Path does not exist.")

根据路径是否存在,它将输出不同的消息。

6. os.path.isfile() - 检查是否为文件

os.path.isfile()函数用于检查指定的路径是否是一个文件。

示例代码:

import os

path = "/path/to/file.txt"
if os.path.isfile(path):
    print("It's a file.")
else:
    print("It's not a file.")

它将根据路径的类型输出不同的消息。

7. os.path.isdir() - 检查是否为目录

os.path.isdir()函数用于检查指定的路径是否是一个目录。

示例代码:

import os

path = "/path/to/folder"
if os.path.isdir(path):
    print("It's a directory.")
else:
    print("It's not a directory.")

它将根据路径的类型输出不同的消息。

8. os.path.splitext() - 分割文件名和扩展名

os.path.splitext()函数用于将文件名分割成名称和扩展名两部分。

示例代码:

import os

file_path ="/path/to/file.txt"
file_name, file_extension = os.path.splitext(file_path)
print("File name:", file_name)
print("File extension:", file_extension)

这将输出文件名和扩展名,如:

  • 文件名:file
  • 文件扩展名:.txt

总结

os.path模块提供了一组强大的函数,用于处理文件路径和目录。这些函数在文件操作、文件路径构建和路径检查等任务中非常有用。通过使用这些函数,可以更容易地管理文件和目录,同时确保代码在不同操作系统上的兼容性。


如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
Python全套学习资料

在这里插入图片描述

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓
在这里插入图片描述

Python:文件操作使用大全(os.path.basename() ,os.path.join(),find(),split(),endswith(),shutil模块) 需求:一个邮件文件对应一个CSV文件,对大量的邮件文件重命名,然后把此文件移动到对应的CSV文件目录下,检查CSV文件中邮件名称内容与格式的正确性,不正确的做出修改,正确的保留。文件夹中最后是一个(视频、邮件等)文件对应一个CSV文件。 1.创建并写入CSV文件 os.path.join(path,file):连接两个或多个路径。 os.listdir(path):返回指定路径下的文件的名字... 阅读详情

相关推荐

【Python】之 os.path 模块详解

总结: os.path 模块是系统路径操作模块,但实际的原理可以把它认为是处理包含斜杠("/")和反斜杠("\")字符串的模块,其中,斜杠("/")是 linux 系统下的路径分隔符,和反斜杠("\")是 windows 系统下的路径分隔符。 也就是说,只要提供一个包含斜杠和反斜杠的字符串,os.path 模块都能处理,哪怕该字符串不是一个有效的真正路径,因为 os.path 模块的源码实现就是根...

王廷云的博客 2万+

Python常用OS库之path模块学习

实际上可以理解window上的快捷图标,就清楚了,一个道理。四、os.path.commonprefix(list)-->接受包含多个路径的列表,返回所有路径的最长公共前缀(这个是逐字比较的),如果列表为空,则返回空字符串(''),其实这个获取的是两个路径下,从头开始最大的相同数,返回回来的有可能不是一个正常的路径。五、os.path.dirname(path) -->返回路径path的目录名称,这个跟os.path.basename(path)取的部分相反,两则合起来就是os.path.split()

benetan的专栏 5071

Hi3516CV610硬件设计避坑指南:从电源模块到DDR布线实战解析

本文深入解析了Hi3516CV610硬件设计中的关键难点与实战技巧。重点剖析了电源架构的选型陷阱与PCB布局要点,详细阐述了DDR3/L高速布线的等长匹配、信号完整性及端接策略,并提供了MIPI接口与时钟电路的隔离设计指南。旨在帮助工程师规避常见设计错误,提升系统稳定性与可靠性。

ooo22的博客 255

os.path.basename()作用

os.path.basename(),返回path最后的文件名。若path以/或\结尾,那么就会返回空值。 eg: path='D:\CSDBBBBBBN' os.path.basename(path)=CSDBBBBBBN

qq_45893319的博客 5308

麒麟KylinV10系统yum源更换全攻略:从官方源到第三方仓库的保姆级教程

本文详细介绍了麒麟KylinV10系统yum源的更换与优化方法,包括官方源配置、第三方仓库集成及RPM包管理技巧。通过实战案例和命令示例,帮助用户快速解决软件依赖问题,提升系统管理效率。特别适合需要在国产操作系统上进行开发的工程师参考。

weixin_30752699的博客 648

【Claude】SSL certificate verification 错误:证书校验失败与自定义 CA 配置

获取并验证企业 CA 证书后,需要配置 Claude Code(Node.js)信任该证书。Claude Code 的 SSL 错误通常源于企业代理:不是 Anthropic 服务器的问题Node.js 使用独立的 CA 存储:操作系统信任了企业 CA 不等于 Node.js 也信任NODE_EXTRA_CA_CERTS 是标准解决方案:指向包含企业 CA 的 PEM 文件绝不使用 NODE_TLS_REJECT_UNAUTHORIZED=0:这等于关闭所有 HTTPS 安全验证证书链完整性很重要。

博客 6808

第二节:Python 环境搭建超详细教程(2025 最新版)

本文是一份Python新手入门指南,详细介绍了从安装到编写第一个程序的完整流程。主要内容包括:1. 安装Python 3.12(Windows和Mac系统详细步骤及常见问题解决);2. 配置VSCode编辑器(安装必备插件和优化设置);3. 编写并运行第一个"Hello World"程序;4. 解释代码运行原理和避坑指南。文章强调基础概念的重要性,为后续学习变量、循环等内容打下基础。语言通俗易懂,适合零基础学习者跟随操作。

2402_88829511的博客 2970

L2正则化与Ridge回归的关系

非常感谢您提供的详细任务描述和要求。我会尽力按照您的指引来撰写这篇技术博客文章。 L2正则化与Ridge回归的关系 1. 背景介绍 机器学习模型在训练过程中容易出现过拟合的问题,这会导致模型在训练集上表现很好但在测试集上泛化性能较差。为了解决这一问题,正则化技术应运而生。其中

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 659

Python爬虫:开启数据抓取的奇幻之旅(一)

不过,正则表达式的语法相对复杂,对于复杂的网页结构,编写和调试正则表达式可能会比较困难,就像是在一堆杂乱的物品中寻找特定的东西,需要花费一些心思。而且,Python 拥有庞大的开发者社区和丰富的资源,当我们在开发爬虫过程中遇到问题时,可以很容易地在社区中寻求帮助,借鉴其他开发者的经验和解决方案。它还具备强大的代码分析和调试工具。比如,有些网站的数据是通过 JavaScript 动态加载的,使用普通的爬虫库无法直接获取,这时就可以借助 Selenium 库来驱动浏览器,模拟用户操作,从而获取到完整的数据。

来自想要赚大钱的小周同学 1万+

Modbus RTU 详解 + FreeMODBUS移植(附项目源码)

本文全面解析Modbus RTU通信协议,详细介绍其报文格式、功能码定义及典型应用场景,并手把手指导如何将FreeMODBUS协议栈移植到嵌入式平台。内容涵盖从底层硬件驱动配置、协议栈移植到主机/从机通信测试的全流程,重点讲解移植过程中的常见问题及解决方案。文章最后提供经过实测的完整项目源码,帮助开发者快速实现稳定的Modbus RTU通信功能。

Bit_Dong的博客 2926

为何wait和notify方法必须加锁?

为何wait和notify方法必须加锁? 是为了避免Lost Wake Up问题,即丢失唤醒问题。 所谓Lost Wake Up,指的是:线程A调用wait()方法进入阻塞状态,接下来没有其他线程去唤醒线程A,或者其他线程唤醒的时机不对(早于线程A的wait()),导致线程A永远阻塞下去。 下面以一个生产者和消费者的案例来说明上述问题。 假如我们有两个线程,一个消费者线程,一个生产者线程。生产者线程的任务可以简化成将count加一,而后唤醒消费者;消费者则是将count减一,而后在减到0的时候陷入睡眠,.

打酱油的葫芦娃 9155

Python入门教程(非常详细):从零基础到精通的终极指南

"""计算BMI指数(这个文档字符串很重要!)"""return "过轻"return "正常"else:return "过重"# 调用示例print(calculate_bmi(70, 1.75)) # 输出"正常"

networknomad的博客 1202

黑猫带你学UFS协议第23篇:UFS固件升级操作详解(FFU)

摘要:本文介绍了UFS固件更新(FFU)的实现方法与注意事项。根据UFS3.1 JEDEC协议,FFU通过write buffer命令(MODE=0Eh)下载FW固件,随后必须进行power cycle或硬件复位生效。文章详细阐述了FFU操作的10条规则,包括数据分片传输要求、寄存器访问限制等,同时指出协议未明确的厂商实现差异。关键寄存器包括bFFUTimeout、bDeviceFFUStatus和fPermanentlyDisableFwUpdate。

黑猫奥利奥的博客 1万+

如何高效使用Python通达信数据解析工具:3个实用技巧解锁本地金融数据

Python通达信数据解析工具mootdx让你直接读取本地通达信数据文件,实现真正的金融数据自由!无论你是量化投资新手还是经验丰富的分析师,这个强大的工具都能帮你摆脱数据获取的束缚,专注于策略分析本身。 ## 🚀 项目亮点:为什么选择mootdx? **零成本数据接入** - 无需付费API,利用现有通达信数据源即可开始分析,大幅降低学习门槛 **数据完整性保证** - 直接读取原始通达信

gitblog_00650的博客 390

基于STM32、HAL库的 CH9102X USB转UART收发器 驱动程序设计

/ 或 UART_HWCONTROL_RTS_CTS。// 其他函数实现类似,使用HAL_UART_Transmit_IT, HAL_UART_Receive_IT等。UART_TXD <---> USARTx_RX (STM32接收)UART_RXD <---> USARTx_TX (STM32发送)* @param huart: UART句柄指针。* @param huart: UART句柄指针。* @param huart: UART句柄指针。* @param huart: UART句柄指针。

corlin6688的博客 506

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

爆肝一个月,Python 从入门到精通

本文介绍了Python的安装与基础编程知识。Python是跨平台语言,可在Windows、Mac和Linux系统上运行。安装时应选择最新的Python 3.x版本,并确保勾选“Add Python to PATH”。文章详细说明了在不同操作系统下安装Python的方法,包括使用官方安装包或包管理器(如Scoop、Homebrew)。随后,介绍了Python解释器的基本功能,包括命令行交互环境和集成开发环境。文中还讲解了如何编写第一个程序,强调通过手动输入代码来培养编程感觉,并介绍了变量、数据类型、字符串编码

lw_zhang1101的博客 2045

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Python盲水印技术终极指南:让图片说话的秘密武器

想象一下,你精心创作的摄影作品在网上被无授权盗用,却无法证明它的真正归属;或者你需要在不影响视觉体验的前提下,为敏感图片添加只有特定人员才能识别的标记。这一切的解决方案,就隐藏在Python盲水印技术的魔法之中!😊 盲水印技术是一种将信息隐藏到图片中的神奇方法,就像给图片安装了一个"隐形身份证"。与普通水印不同,盲水印对肉眼完全不可见,却能通过特定算法提取出来。今天,我们将深入探索Python

gitblog_00852的博客 1060

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

如何在MLX框架上快速部署Gemma-4-26B-A4B-IT-MXFP8:零基础入门教程

想要在苹果芯片上体验强大的Gemma-4多模态AI模型吗?这篇完整的Gemma-4-26B-A4B-IT-MXFP8部署指南将为你展示如何在MLX框架上轻松运行这个260亿参数的大型语言模型。无论你是AI初学者还是开发者,都能通过这个简单教程快速上手!🚀 ## 什么是Gemma-4-26B-A4B-IT-MXFP8? Gemma-4-26B-A4B-IT-MXFP8是一个基于Google G

gitblog_01181的博客 1357

Python游戏化学习实战:从CodeCombat到趣味项目开发

编程学习常因枯燥语法和缺乏实践动力而受阻。游戏化学习通过将抽象概念转化为直观操作,提供即时反馈,有效降低学习门槛并提升兴趣。其技术价值在于通过角色扮演、任务关卡等机制,将循环、条件判断、函数等核心编程原理自然融入实践,培养逻辑思维与问题解决能力。在应用场景上,游戏化平台如CodeCombat和极客战记,为初学者提供了从基础语法到项目实战的平滑过渡。本文以“人狗大作战”和“爱心代码”等实战项目为例,展示如何将游戏灵感转化为Python代码,涵盖类与对象、图形绘制等关键技术,帮助学习者在趣味实践中巩固知识,自然

weixin_34318272的博客 383

FUTURE POLICE模型Python入门实践:第一个语音处理脚本编写

本文介绍了如何在星图GPU平台上自动化部署🛡️ FUTURE POLICE: 高精度语音解构镜像,并编写Python脚本实现语音转文字功能。通过调用该镜像提供的API,开发者可以快速构建语音处理应用,例如将会议录音或访谈音频自动转换为文字记录,从而提升内容整理效率。

weixin_31315007的博客 45

Python快速搭建局域网HTTP服务器:从http.server到Flask实战指南

HTTP服务器是网络通信的核心组件,它遵循客户端-服务器模型,通过HTTP协议处理请求与响应。其基本原理是监听特定端口,解析请求报文并返回相应资源。在开发测试、内网协作等场景中,快速搭建一个轻量级HTTP服务能极大提升效率,例如实现局域网文件共享或原型演示。Python标准库中的http.server模块为此提供了极简方案,而Flask等框架则能扩展为功能更丰富的定制服务。本文聚焦于利用Python内置模块与Flask,在局域网内快速部署HTTP服务,涵盖http.server的极速文件共享与Flask构建

weixin_30315723的博客 308

Python爬虫与数据分析实战:从零基础到接单的完整学习路径

在当今数据驱动的时代,Python因其简洁语法和强大的库生态,成为爬虫与数据分析领域的主流工具。其核心原理在于通过HTTP协议与网络交互获取数据,并利用Pandas等库进行高效处理。掌握这些技术不仅能自动化数据采集流程,还能从海量信息中提炼商业洞察,实现数据价值转化。在工程实践中,爬虫需关注反爬策略与合规性,数据分析则强调从清洗到可视化的完整流程。本文聚焦于如何构建从Python基础到爬虫、数据分析的实战技能栈,通过项目驱动学习,帮助学习者跨越从理论到实践的鸿沟,最终具备解决实际问题的能力,为接单或就业打下

weixin_30521161的博客 433

手写表格自动化识别:从OCR原理到Python实战完整指南

OCR(光学字符识别)技术是计算机视觉领域的关键应用,其核心原理是通过图像处理和模式识别算法,将图片中的文字信息转化为可编辑的文本数据。这项技术的核心价值在于将非结构化的图像信息转化为结构化的数字信息,从而在文档数字化、数据录入和自动化办公等场景中大幅提升效率。在实际工程实践中,针对手写表格这类复杂场景,通常需要结合图像预处理、表格结构分析和OCR识别等多个环节构建完整流水线。本文聚焦于手写表格识别这一具体应用,详细解析了基于开源OCR引擎Tesseract和Python图像处理库OpenCV的完整解决方案

weixin_33691700的博客 347

C/C++程序员如何快速上手Python?核心语法差异与实战指南

对于已有C/C++基础的开发者而言,学习Python的关键并非重新理解变量、循环等基础概念,而是快速完成两种语言思维模型的转换。动态类型与对象引用机制取代了静态类型声明,缩进与冒号成为代码块边界,列表、字典、元组则提供了更灵活的数据组织方式。Python的函数支持默认参数、关键字参数和lambda表达式,其模块导入与虚拟环境机制也极大简化了工程依赖管理。理解这些核心差异后,C/C++程序员便能借助列表推导式、生成器、异常处理等特性,高效编写数据分析、爬虫脚本及自动化工具。本文面向具备编译与内存概念的开发者,

weixin_34234721的博客 277

告别catkin_make!ROS2 Foxy开发必备:colcon编译工具保姆级入门指南(附VSCode环境)

本文详细介绍了ROS2 Foxy开发中colcon编译工具的全面使用指南,包括与catkin_make的核心差异、基础使用、高级编译技巧及VSCode环境集成。通过保姆级教程帮助开发者快速掌握colcon工具,提升ROS2开发效率,特别适合从ROS1迁移到ROS2的开发者。

weixin_30915951的博客 428
上一篇: Python的魔法方法:深入理解数据模型
下一篇: 图解python | 字典
大模型产品经理
博客等级 码龄3年 1万+粉丝 1120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值