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

时间:2017-08-11 07:24:27

标签: python pathlib

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()还是应该避免使用它?

1 个答案:

答案 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