web-dev-qa-db-ja.com

Pythonでパスに文字列を追加するにはどうすればよいですか?

次のコード:

from pathlib import Path
Desktop = Path('Desktop')
SubDeskTop = Desktop + "/subdir"

次のエラーが発生します。

    ---------------------------------------------------------------------------
 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'

ここでは明らかに怪しげなことをしていますが、それは疑問を投げかけます:Pathオブジェクトのサブディレクトリにアクセスするにはどうすればよいですか?

11
Ray Salemi

答えは恥ずかしいほど簡単だったことがわかりました。正しい演算子は「/」です

 from pathlib import Path
 Desktop = Path('Desktop')
 SubDeskTop = Desktop/"subdir"
13
Ray Salemi

あなたが探しているのは:

_from pathlib import Path
Desktop = Path('Desktop')
SubDeskTop = Path.joinpath(Desktop, "subdir")
_

joinpath()関数は、2番目のパラメーターを最初のパラメーターに追加し、「/」を追加します。

3
r.ook

または

from pathlib import Path

p1 = Path('somewhere')
p2 = p1.joinpath(p1, "over/there")

# or if you want to just create it in one line

p1.joinpath(p1, "new/place").mkdir()
0
CpILL