← 全部文章

技术与生活 / 一篇记录

路径拼接里,少一点字符串技巧

手工拼接斜杠需要同时考虑绝对路径、分隔符和平台差异。Path 对象让路径组合与文本格式化分开,也更容易继续执行存在性检查或目录遍历。

路径对象能清晰表达父目录与文件名,避免手写平台分隔符。

实际怎么检查

以下示例使用 Python 3,文件路径和输入值均为练习样本。

from pathlib import Path
print(Path('data') / 'sample.json')

在不同工作目录下运行,检查相对路径的实际位置。

遇到异常再检查什么

比较相对路径和 resolve 后的位置,确认读取目标确实位于预期目录。处理外部传入的路径时,仍需检查是否越出了允许访问的根目录。

存在性检查与打开文件之间仍有时间窗口,文件可能被另一个进程移走。可靠处理应包含实际打开失败的分支,不能因为前面 exists 返回真,就省掉后续异常处理。

路径对象不会自动保证目标存在或拥有访问权限。

参考:Python 文档。

搜索文章

输入关键词,找回一篇记录。