如何从Python获取的mkv文件绝对路径中提取不含目录的文件名?
提取路径中的纯文件名实现方案
方案1:使用os.path.basename(全版本兼容)
直接调用Python标准库os模块内置的os.path.basename()方法即可,该方法专门用于从完整路径中提取末尾的文件名部分,适配Windows、Linux、macOS等多平台路径格式。
示例代码如下:
import os # 你的原有业务代码 files_path = [os.path.abspath(x) for x in os.listdir()] fnames_transfer = [x for x in files_path if x.endswith(".mkv")] # 新增:提取所有mkv文件的纯文件名 pure_mkv_filenames = [os.path.basename(file_path) for file_path in fnames_transfer]
测试效果:传入路径E:\pythoncode\feature\1.mkv时,返回结果为1.mkv,完全匹配需求。
方案2:使用pathlib(Python 3.4+ 推荐)
Python 3.4及以上版本可以使用更面向对象的pathlib库处理路径,代码可读性更高,天然支持跨平台路径解析:
from pathlib import Path # 全流程pathlib实现示例 current_dir = Path.cwd() pure_mkv_filenames = [file.name for file in current_dir.iterdir() if file.suffix == ".mkv"]
小提示:你原有代码中直接对
os.listdir()返回值调用os.path.abspath()仅适用于遍历当前工作目录的场景,如果你后续需要遍历其他指定目录,建议先通过os.path.join(目标目录, 文件名)或者pathlib的路径拼接语法生成完整路径再做处理,避免路径解析错误。
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

