您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中构建完整路径文件名

在Python中构建完整路径文件名

这很好用:

os.path.join(dir_name, base_filename + "." + filename_suffix)

请记住,这种os.path.join()存在仅是因为不同的操作系统使用不同的路径分隔符。它可以消除这种差异,因此跨平台代码不必因每种操作系统的特殊情况而混乱。无需对文件名“扩展名”执行此操作(请参见脚注),因为在每个OS上,它们始终以点字符连接到名称的其余部分。

如果仍然使用函数会让您感觉更好(并且您喜欢使代码不必要地复杂化),则可以执行以下操作:

os.path.join(dir_name, '.'.join((base_filename, filename_suffix)))

如果您希望保持代码干净,只需在后缀中包含点:

suffix = '.pdf'
os.path.join(dir_name, base_filename + suffix)

方法也恰好与pathlib中的后缀约定兼容,在询问了此问题后,它在python 3.4中引入。不需要向后兼容的新代码可以做到这一点:

suffix = '.pdf'
pathlib.PurePath(dir_name, base_filename + suffix)

如果只处理本地操作系统的路径PathPurePath则可能更喜欢使用较短的名称

警告:请勿with_suffix()为此使用pathlib 。base_filename如果该方法包含点,它将损坏。

脚注:在Micorsoft操作系统之外,没有文件名“ extension”之类的东西。它在Windows上的存在来自MS-DOS和FAT,它们是从CP / M借来的,而CP / M已经死了数十年。我们中许多人习惯看到的点加三字母只是其他所有现代OS上文件名的一部分,它没有内置的含义。

python 2022/1/1 18:27:38 有187人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶