如何在Python的路径中附加字符串?

Ray*_*emi 3 python python-3.x pathlib

如下代码:

from pathlib import Path
Desktop = Path('Desktop')
SubDeskTop = Desktop+"/subdir"
Run Code Online (Sandbox Code Playgroud)

得到以下错误:

    ---------------------------------------------------------------------------
 TypeError                                 Traceback (most recent call last)
    <ipython-input-4-eb31bbeb869b> in <module>()
             1 from pathlib import Path
             2 Desktop = Path('Desktop')
       ----> 3 SubDeskTop = Desktop+"/subdir"

     TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str'
Run Code Online (Sandbox Code Playgroud)

我显然在这里做一些可疑的事情,但这引发了一个问题:如何访问Path对象的子目录?

r.o*_*ook 15

你要找的是:

from pathlib import Path
Desktop = Path('Desktop')
SubDeskTop = Path.joinpath(Desktop, "subdir")
Run Code Online (Sandbox Code Playgroud)

joinpath()函数会将第二个参数附加到第一个参数并为您添加“/”。

  • 虽然我了解到 '/' 运算符已重载以执行相同的操作,但确实有效。 (4认同)
  • 注意:`SubDeskTop = Path.joinpath(Desktop, "/subdir")` 不起作用。`subdir` 之前的斜杠破坏了它。 (2认同)

Ray*_*emi 5

原来答案很简单。正确的运算符为“ /”

 from pathlib import Path
 Desktop = Path('Desktop')
 SubDeskTop = Desktop/"subdir"
Run Code Online (Sandbox Code Playgroud)