tra*_*set 33 python filenames pathlib
是否有类似的东西os.path.dirname(path),但在pathlib?
lar*_*sks 55
看起来有一个parents元素包含给定路径的所有父目录.例如,如果您从以下开始:
>>> import pathlib
>>> p = pathlib.Path('/path/to/my/file')
Run Code Online (Sandbox Code Playgroud)
那么p.parents[0]该目录包含file:
>>> p.parents[0]
PosixPath('/path/to/my')
Run Code Online (Sandbox Code Playgroud)
... p.parents[1]并将成为下一个目录:
>>> p.parents[1]
PosixPath('/path/to')
Run Code Online (Sandbox Code Playgroud)
等等.
p.parent是另一种要求的方式p.parents[0].您可以将a Path转换为字符串并获得您期望的内容:
>>> str(p.parent)
'/path/to/my'
Run Code Online (Sandbox Code Playgroud)
而且在任何Path你可以使用该.absolute()方法获得绝对路径:
>>> os.chdir('/etc')
>>> p = pathlib.Path('../relative/path')
>>> str(p.parent)
'../relative'
>>> str(p.parent.absolute())
'/etc/../relative'
Run Code Online (Sandbox Code Playgroud)
yua*_*nzz 10
from pathlib import Path
file_path = Path("/Users/yuanz/PycharmProjects/workenv/little_code/code09/sample.csv")
Run Code Online (Sandbox Code Playgroud)
file_path.parent
# >>> /Users/yuanz/PycharmProjects/workenv/little_code/code09
Run Code Online (Sandbox Code Playgroud)
file_path.name
# >>> sample.csv
Run Code Online (Sandbox Code Playgroud)
file_path.suffix
# >>> .csv
Run Code Online (Sandbox Code Playgroud)
file_path.parent.joinpath("dd.png")
Run Code Online (Sandbox Code Playgroud)