如何用Python pathlib基于播放列表路径转换MP3相对路径为绝对路径
解决基于播放列表路径解析MP3绝对路径的问题
你需要基于播放列表文件所在的目录来解析相对路径,而非脚本运行的目录,具体实现如下:
正确代码示例
import pathlib plMaster = pathlib.Path(r"C:\ZZ\XX\Playlist.pls") plSlave = pathlib.Path(r"..\..\mp3\song.mp3") # 获取播放列表所在的目录 playlist_dir = plMaster.parent # 拼接相对路径并解析为最终绝对路径 target_mp3_path = playlist_dir.joinpath(plSlave).resolve() print(target_mp3_path) # 输出结果:C:\mp3\song.mp3
关键说明
plMaster.parent:提取播放列表文件的父目录(即C:\ZZ\XX),这是解析相对路径的正确基准。joinpath(plSlave):将相对路径与播放列表目录拼接,得到带..的临时路径C:\ZZ\XX\..\..\mp3\song.mp3。resolve():自动解析路径中的..,生成规范的绝对路径C:\mp3\song.mp3。
为什么之前的方法无效
直接调用plSlave.absolute()时,Python会以当前脚本运行的目录(C:\DD\CC\BB\AA)作为基准,拼接后解析出的路径和播放列表位置无关,自然无法得到正确结果。
内容的提问来源于stack exchange,提问作者Ricardo
相关产品推荐
相关产品推荐

