Pathlib 中“joinpath”和“/”的区别

Par*_*dha 3 python-3.x pathlib

模块中的joinpath和运算符有区别吗?该文档从未比较这两种方法。从本质上讲,这两者是否存在不同的情况?/pathlib

例子:


from pathlib import Path

foo = Path("some_path")
foo_bar_operator = foo / "bar"
foo_bar_joinpath = foo.joinpath("bar")

foo_bar_operator == foo_bar_joinpath
# Returns: True

Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 5

没有区别。源代码证实了这一点:

    def joinpath(self, *args):
        """Combine this path with one or several arguments, and return a
        new path representing either a subpath (if all arguments are relative
        paths) or a totally different path (if one of the arguments is
        anchored).
        """
        return self._make_child(args)

    def __truediv__(self, key):
        try:
            return self._make_child((key,))
        except TypeError:
            return NotImplemented
Run Code Online (Sandbox Code Playgroud)

请注意,您可以将多个参数传递给joinpath例如a.joinpath(b, c, d)。相当于./a / b / c / d