python - 有没有一种惯用的方法可以使用 Python 的 Pathlib 添加扩展?

标签 python python-3.x pathlib

我正在使用 Python 的 Pathlib,我想使用类似的东西

p = Path('/path/to/foo')

然后尝试几个不同的扩展。我能行

for ext in ['.txt', '.md', '.note']
    filename = Path(str(p) + ext)

但这感觉有点尴尬。有更好的方法吗?

最佳答案

with_suffix方法将返回具有不同扩展名的新路径,更改现有扩展名或添加新扩展名。文档中的示例:

>>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz')
>>> p.with_suffix('.bz2')
PureWindowsPath('c:/Downloads/pathlib.tar.bz2')
>>> p = PureWindowsPath('README')
>>> p.with_suffix('.txt')
PureWindowsPath('README.txt')

在您的情况下,p.with_suffix(ext) 可以完成这项工作。

对于需要在任何现有后缀之后添加后缀而不是删除现有后缀的情况,您可以使用 p.with_suffix(p.suffix+ext)。不过,这有点笨拙,我不知道我是否更喜欢它而不是 Path(str(p)+ext)

关于python - 有没有一种惯用的方法可以使用 Python 的 Pathlib 添加扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51366452/

相关文章:

python - Appengine(python)为有效查询返回空

python - 在 Pygame 中制作半透明暂停背景屏幕

python-3.x - IF 语句应用不同的公式

python - pysqlcipher 安装 - SyntaxError : Missing parentheses in call to 'print'

python - Jinja2 中的 zip(list1, list2) ?

python - 根据标签列表中单词的索引位置查找字符串中单词的开始和结束位置

python:将 os.Path 代码转换为 Pathlib 代码

python - 使用远程操作系统分隔符的路径串联

python - 我可以使用未记录的方法 pathlib.Path.absolute() 吗?

python - 关于 IPython + MacVim 工作流程的建议