pathlib.Path
上自动完成找到的第一种方法是absolute()
。
似乎只是在开头Path.cwd()前面加上:
>>> from pathlib import Path
>>> path = Path('./relative/path') / '../with/some/../relative/parts'
Path('relative/path/../with/some/../relative/parts')
# calling absolute...
>>> absolute_path = path.absolute()
Path('/[current_dir]/relative/path/../with/some/../relative/parts')
# does the same as prepending cwd at the start
>>> Path.cwd() / path
Path('/[current_dir]/relative/path/../with/some/../relative/parts')
但是,Path.absolute()
中未列出cwd
。
将此与pathlib documentation进行比较,后者采用相反的方式(替换相对部分但不添加absolute()
)并记录 。
我可以使用Path.absolute()
还是应该避免使用它?
答案 0 :(得分:3)
至少在Python 3.6之前,你应该避免使用absolute()
。
根据Path.resolve()中的讨论,
Path.cwd()
未经过测试,因此未正式公布。事实上,可能甚至可以在未来的Python版本中删除。
因此,仅使用>>> # make path absolute if it isn't already
>>> path = path if path.is_absolute() else Path.cwd() / path
Path('/[current_dir]/relative/path/../with/some/../relative/parts')
更安全。
如果您不确定实际需要这样做,可以使用the bug report about the missing documentation进行检查。
nameof