如何仅通过无扩展名的文件路径/名称获取文件扩展名?
如何获取无扩展名路径对应的文件真实扩展名?
仅通过Python\Project\some_image这个不带扩展名的路径字符串,无法直接获取文件扩展名——因为这个路径本身不包含扩展名信息,pathlib.Path的suffix属性只能解析路径字符串里自带的后缀,自然拿不到真实文件的扩展名。
要找到目标文件的真实扩展名,你需要扫描路径指向的目录,查找文件名前缀匹配some_image的文件,再提取它们的扩展名。以下是两种可行的实现方式:
方法1:使用pathlib模块的glob匹配
from pathlib import Path # 目标目录路径(Windows下可写成r"Python\Project") target_dir = Path("Python/Project") # 匹配所有以"some_image"开头的文件 matched_files = target_dir.glob("some_image*") for file in matched_files: if file.is_file(): # 跳过子目录,只处理文件 print(f"匹配文件:{file.name},扩展名:{file.suffix}")
方法2:使用os模块遍历目录
import os dir_path = "Python/Project" # 或Windows下的r"Python\Project" target_prefix = "some_image" for filename in os.listdir(dir_path): full_path = os.path.join(dir_path, filename) if os.path.isfile(full_path) and filename.startswith(target_prefix): _, ext = os.path.splitext(filename) print(f"匹配文件:{filename},扩展名:{ext}")
额外注意事项
- 如果目录下存在多个以
some_image开头的文件(比如some_image.png和some_image.temp.jpg),可以通过过滤常见图片扩展名(.png,.jpg,.jpeg,.gif,.bmp等)来精准定位目标图片:valid_image_exts = {".png", ".jpg", ".jpeg", ".gif"} # 在遍历判断时加入: if file.suffix.lower() in valid_image_exts: # 处理目标图片 - Windows路径中的反斜杠在Python字符串中需要转义为
\\,或者使用原始字符串(前缀加r)避免转义问题。
内容的提问来源于stack exchange,提问作者JayMan146
相关产品推荐
相关产品推荐

