Python实战: 获取 后缀名(扩展名) 或 文件名

Python实战: 获取 后缀名(扩展名) 或 文件名

在这里插入图片描述

🌈 个人主页:高斯小哥
🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅和支持~
💡 创作高质量博文,分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)


🌵文章目录🌵

  • 一、引言 💭
  • 二、获取文件名 🔍
  • 三、获取文件扩展名 🌿
  • 四、实战案例 🌳
  • 五、总结 🎉
  • 六、最后 🤝

一、引言 💭

  在日常编程中,我们经常需要处理文件,包括读取、写入、移动、复制等操作。而在这些操作中,获取文件的扩展名(后缀名)或文件名是一个常见的需求。Python提供了多种方法来实现这一需求,本文将详细介绍其中的几种方法,并通过实战案例来加深理解。

二、获取文件名 🔍

  在Python中,获取文件名通常使用os.path.basename()函数。这个函数接受一个文件路径作为参数,并返回该文件的基本名称,即最后一个路径分隔符后面的部分。

下面是一个简单的示例:

import os# 定义一个文件路径
file_path = "/home/user/documents/example.txt"# 使用os.path.basename()获取文件名
file_name = os.path.basename(file_path)print(file_name)  # 输出: example.txt

💡注意os.path.basename()函数仅返回文件名,不包括路径或扩展名。

三、获取文件扩展名 🌿

  在Python中,获取文件扩展名通常使用os.path.splitext()函数。这个函数接受一个文件路径作为参数,并返回一个元组,其中第一个元素是文件的基本名称(不包括扩展名),第二个元素是文件的扩展名(包括点号)

下面是一个简单的示例:

import os# 定义一个文件路径
file_path = "/home/user/documents/example.txt"# 使用os.path.splitext()获取文件名和扩展名
file_name, file_extension = os.path.splitext(file_path)print("文件名:", file_name)  # 输出: 文件名: /home/user/documents/example
print("扩展名:", file_extension)  # 输出: 扩展名: .txt

💡注意os.path.splitext()函数返回的扩展名包括点号(.)。如果你想要去掉点号,可以通过字符串切片操作来实现:

file_extension = file_extension[1:]  # 去掉点号
print("去掉点号的扩展名:", file_extension)  # 输出: 去掉点号的扩展名: txt

四、实战案例 🌳

  现在,我们来看一个实战案例,演示如何在实际编程中运用获取文件名和扩展名的知识。假设我们有一个文件夹,里面包含了多个文件,我们需要遍历这个文件夹,打印出每个文件的文件名和扩展名。

import os# 定义一个文件夹路径
folder_path = "/home/user/documents"# 遍历文件夹中的文件
for file_name in os.listdir(folder_path):# 拼接文件的完整路径file_path = os.path.join(folder_path, file_name)# 判断是否为文件(排除文件夹)if os.path.isfile(file_path):# 使用os.path.splitext()获取文件名和扩展名file_base_name, file_ext = os.path.splitext(file_name)# 打印文件名和扩展名print(f"文件名: {file_base_name}, 扩展名: {file_ext[1:]}")

  这个示例代码会遍历指定文件夹中的所有文件,并打印出每个文件的文件名和扩展名。

💡注意: 我们在打印扩展名时使用了字符串切片操作来去掉点号。

五、总结 🎉

  本文介绍了在Python中获取文件名和扩展名的几种方法,包括使用os.path.basename()函数获取文件名,以及使用os.path.splitext()函数获取文件名和扩展名。通过实战案例的演示,我们了解了如何在实际编程中运用这些知识。希望本文能够帮助你更好地处理文件相关的编程任务!


六、最后 🤝

  亲爱的读者,感谢您每一次停留和阅读,这是对我们最大的支持和鼓励!🙏在茫茫网海中,您的关注让我们深感荣幸。您的独到见解和建议,如明灯照亮我们前行的道路。🌟若在阅读中有所收获,一个赞或收藏,对我们意义重大。

  我们承诺,会不断自我挑战,为您呈现更精彩的内容。📚有任何疑问或建议,欢迎在评论区畅所欲言,我们时刻倾听。💬让我们携手在知识的海洋中航行,共同成长,共创辉煌!🌱🌳感谢您的厚爱与支持,期待与您共同书写精彩篇章!

  您的点赞👍、收藏🌟、评论💬和关注💖,是我们前行的最大动力!

  🎉 感谢阅读,祝你编程愉快! 🎉

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

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

相关文章

mysql 事务详解一

前言 提到事务,大家肯定不陌生。在我们现实生活中也是存在的,比如我们去超市购物,然后去支付。虽然是两个步骤,必须保证同时成功,这个交易才可以完成。 如果这个场景,拿到我们购物系统,就是几…

VirtualBox+Vagrant安装linux

一、VirtualBox安装 VirtualBox官网:Oracle VM VirtualBox 这里采用VirtualBox--7.0.0 版本 二、Vagrant安装 Vagrant官网:Vagrant by HashiCorp Vagrant镜像仓库:Discover Vagrant Boxes - Vagrant Cloud 这里采用Vagrant--2.4.1版本 在…

神经网络系列---权重初始化方法

文章目录 权重初始化方法Xavier初始化(Xavier initialization)Kaiming初始化,也称为He初始化LeCun 初始化正态分布与均匀分布Orthogonal InitializationSparse Initializationn_in和n_out代码实现 权重初始化方法 Xavier初始化(X…

关于uniapp H5应用无法在触摸屏正常显示的处理办法

关于uniapp H5应用无法在触摸屏正常显示的处理办法 1、问题2、处理3、建议 1、问题 前几天, 客户反馈在安卓触摸大屏上无法正确打开web系统(uni-app vue3开发的h5 应用),有些页面显示不出内容。该应用在 pc 端和手机端都可以正常…

【递归版】归并排序算法(1)

目录 MergeSort归并排序 整体思想 图解分析 代码实现 时间复杂度 递归&归并排序VS快速排序 MergeSort归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer&a…

Linux第65步_学习“Makefie”

学习“Makefie”,为后期学习linux驱动开发做铺垫。 1、在“/home/zgq/linux/atk-mp1”创建一个“Test_MakeFile”目录用于学习“Makefie”。 打开终端 输入“cd /home/zgq/linux/回车”,切换到“/home/zgq/linux/”目录 输入“mkdir Linux_Drivers回…

window: C++ 获取自己写的dll的地址

我自己用C写了一个插件,插件是dll形式的,我的插件式在dll的目录下有个config文件夹,里面是我用json写的插件配置文件,当插件运行的时候我需要读取到json配置文件,所有最重要的就是如何获取dll的路径. 大概就是这么个结构, 我自己封装了一个函数.只适用于window编程,因为里面用…

node 之 fs文件系统模块

1.什么是fs文件系统模块 fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求 fs.readFile(),用来读取制定文件中的内容 fs.writeFile(),用来向制定的文件中写入内容 如果要在JavaScript代码中,使…

论文是怎么一回事

最近找到女朋友了,她还挺关心我毕业和论文的事情,我开始着手弄论文了~ 说来惭愧,我一直以为读研就是做东西当作工作来完成,结果一直陷入如何实现的问题,结果要论文时不知道怎么弄创新点,这才转过头来弄论文…

Python实现歌曲下载程序, 打包exe应用程序

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用: Python 3.10 Pycharm 模块使用: import requests >>> pip install requests import parsel >>> pip install parsel import pr…

使用向量数据库pinecone构建应用06:日志系统异常检测 Anomaly Detection

Building Applications with Vector Databases 下面是这门课的学习笔记:https://www.deeplearning.ai/short-courses/building-applications-vector-databases/ Learn to create six exciting applications of vector databases and implement them using Pinecon…

Javaweb之SpringBootWeb案例之配置优先级的详细解析

1. 配置优先级 在我们前面的课程当中,我们已经讲解了SpringBoot项目当中支持的三类配置文件: application.properties application.yml application.yaml 在SpringBoot项目当中,我们要想配置一个属性,可以通过这三种方式当中…

强化学习入门到不想放弃-3

第三节我们主要讲一下SARSA模型 上节课的链接:强化学习入门到不想放弃-2 (qq.com) 有模型的概念:简单理解,上节课我讲的就是有模型,就是可以开上帝视角,知道全局地图 无模型的概念: 打CS,但是看不到地图的情况,全凭自己探索 今天的讲解环境还是和上节课一样,如下…

yml配置文件中常见的配置及含义

1.数据库连接的相关配置 项目名称:datasource:driver-class-name: com.mysql.cj.jdbc.Driverhost: localhostport: 3306database: 数据库名username: 用户名password: 密码 springboot配置文件,用于配置数据库源连接信息 数据库驱动类型为com.mysql.cj.jdbc.Driver,这是数据…

redis的搭建 RabbitMq搭建 Elasticsearch 搭建

官网 Download | Redis wget https://github.com/redis/redis/archive/7.2.4.tar.gz 编译安装 yum install gcc g tar -zxvf redis-7.2.4.tar.gz -C /usr/localcd /usr/local/redis make && make install 常见报错 zmalloc.h:50:10: fatal error: jemalloc/jemal…

前端学习——JS学习

文章目录 1. 定义变量,关键字 var、let、const2. 定义变量,数据类型3. 数组变量的操作4. 对象的操作5. JSON 字符串 1. 定义变量,关键字 var、let、const 这里主要是对var、let做比较 /** 1. var存在变量提升、let不存在变量提升 **/ cons…

Minimize Inversions

先来看看官方题解的做法,他一反常态的没有在逆序对题目里面考虑每个位置的贡献,而是直接回到定义考虑每对数是否是逆序对 我们考虑原数列中任意的一组数\((a_i,a_j)\)和\((b_i,b_j)\)。如果最开始两个都不是逆序对,那么交换之后两个都是逆序对…

NXP实战笔记(八):S32K3xx基于RTD-SDK在S32DS上配置LCU实现ABZ解码

目录 1、概述 2、SDK配置 2.1、IO配置 2.2、TRGMUX配置 2.3、LCU配置 2.4、Trgmux配置 2.5、Emios配置 2.6、代码实现 1、概述 碰到光电编码器、磁编码器等,有时候传出来的位置信息为ABZ的方式,在S32K3里面通过TRGMUX、LCU、Emios结合的方式可以实现ABZ解码。 官方…

HCIA(11)OSPF 数据包构成(Hello、DBD、LSR、LSU、LSAck包)、状态机、工作流程(建立邻居关系、主从关系协商、LSDB同步)

OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 目前针对IPv4协议使用OSPF Version 2,针对IPv6协议使用OSPF Version 3。 在OSPF出现前,网络…

C++的list容器->基本概念、构造函数、赋值和交换、大小操作、插入和删除、数据存取、反转和排序、排序案例

#include<iostream> using namespace std; #include <list> //list容器构造函数 void printList(const list<int>& L) { for (list<int>::const_iterator it L.begin(); it ! L.end(); it) { cout << *it << "…