当前位置: 首页 > java >正文

python根据图片路径获取文件后缀名

在Python中可以通过以下两种方式根据文件路径获取后缀名:

方法一:使用os.path模块(标准库)

import osdef get_file_extension(file_path):# 分割路径获取文件名file_name = os.path.basename(file_path)# 分割文件名和扩展名_, ext = os.path.splitext(file_name)return ext.lower().lstrip('.')  # 返回小写且不带点的后缀# 使用示例
print(get_file_extension("/path/to/image.jpg"))      # 输出: jpg
print(get_file_extension("folder/photo.PNG"))        # 输出: png
print(get_file_extension("archive.tar.gz"))          # 输出: gz(只取最后一个扩展名)
print(get_file_extension(".hiddenfile"))             # 输出: hiddenfile(特殊情况处理)

方法二:使用pathlib库(推荐,Python 3.4+)

from pathlib import Pathdef get_file_extension(file_path):path = Path(file_path)# 获取所有扩展名(返回列表,如 ['tar', 'gz'])# extensions = path.suffixes# 获取最后一个扩展名(推荐方式)return path.suffix.lower().lstrip('.') if path.suffix else ''# 使用示例
print(get_file_extension("/path/to/image.jpg"))      # 输出: jpg
print(get_file_extension("folder/photo.PNG"))        # 输出: png
print(get_file_extension("archive.tar.gz"))          # 输出: gz
print(get_file_extension(".hiddenfile"))             # 输出: ''(视为无扩展名)

特性对比:

方法多扩展名支持隐藏文件处理返回值类型推荐场景
os.path❌ 仅取最后✅ 返回全名字符串简单快速场景
pathlib✅ 支持列表✅ 视为无扩展字符串现代Python项目

高级用法(获取所有扩展名):

# 使用pathlib获取完整扩展名链
def get_all_extensions(file_path):path = Path(file_path)return [ext.lstrip('.').lower() for ext in path.suffixes]print(get_all_extensions("archive.tar.gz"))  # 输出: ['tar', 'gz']

注意事项:

  1. 大小写处理:建议统一转为小写(.JPGjpg
  2. 特殊文件:隐藏文件(如.bashrc)会被视为无扩展名
  3. 无扩展名文件:返回空字符串而不是错误
  4. URL路径:如果处理的是网络路径,建议先用urllib.parse解析

根据实际需求选择方法,现代Python项目推荐使用pathlib方案,它具有更好的可读性和面向对象特性。

http://www.xdnf.cn/news/13789.html

相关文章:

  • Spring Boot Actuator 健康信息
  • OpenLayers 动画
  • 零基础RT-thread第一节:串口通信UART
  • C语言——指针
  • 实现AI数据高效评估的一种方法
  • 分水岭边缘提取和hough提取边缘
  • ubuntu20上 : mujoco210安装教程
  • 计算机系统设计:E-R图、类图、时序图、功能结构图、流程图、用例图、架构图
  • 【ARMv7-A】——CLZ 指令
  • 【25-cv-06400、25-cv-06413】Keith律所再次代理Elizabeth Anne Evans蝴蝶版权画
  • 使用MetaGPT 创建智能体(3)常用操作和晋级
  • < 自用文儿 腾讯云 VPS > Ubuntu 24 系统,基本设置
  • 无人机接收机运行技术要点分析!
  • 基于SC内存一致性模型两个核心约束的放松维度
  • Systemctl 手记:从服务管理到资源控制的进阶实践
  • AI时代,学习力进化指南:如何成为知识的主人?
  • JSON 与 AJAX
  • 开疆智能ModbusTCP转Devicenet网关连接ABB机器人配置案例
  • 网页中调用自定义字体可以通过 ‌CSS‌ 的 @font-face 规则实现
  • Vue 跳转页面,第一次进页面,会出现样式混乱,刷新后即恢复正常(问题已解决)
  • 进程和计划任务管理
  • 剑指offer23_树的子结构
  • ESP32S3 关于使用INMP441麦克风 和MAX98357AETE功放进行录音和播放
  • 复现论文报错解决
  • 新手速学:在线投票制作系统操作详细步骤
  • centos clamav 扫描及告警配置
  • 内网渗透测试技巧与利用操作手册(SMB / MSSQL / LDAP)
  • 全志A33安卓6.0添加支持usb摄像头动态热插拔
  • 换颜色 算法笔记
  • 新能源知识库(46)EMS与协控装置