如何正确移除字符串中由分隔符分隔的最后一段内容?
更优实现推荐
直接用Python标准库自带的路径处理工具就行,比手动切割拼接更鲁棒,可读性也更高,还能兼容不同操作系统的路径格式:
方法1:使用os.path.dirname(兼容所有Python版本)
import os str = "path/to/some/file/name.txt" new_str = os.path.dirname(str)
方法2:使用pathlib(Python3.4及以上推荐,面向对象路径处理)
from pathlib import Path str = "path/to/some/file/name.txt" new_str = str(Path(str).parent)
原写法的问题
你当前用split切割再join的写法存在几个缺陷:
- 仅支持斜杠分隔的Unix风格路径,无法适配Windows系统的反斜杠路径格式
- 边界场景处理容易出错,比如路径末尾带斜杠、路径只有文件名没有前缀目录的场景,切割结果会不符合预期
- 代码表意不清晰,其他阅读者需要额外反应才能理解你是要获取文件的父目录路径,标准库方法可以直接体现代码意图。
内容的提问来源于stack exchange,提问作者urie
相关产品推荐
相关产品推荐

