[英]How get path of specific parent directory in python
我有path = "dir1/dir2/dir3/file.py"
我需要一种方法来获取dir2
的完整路径,即dir1/dir2
。
类似findparent(path, 'dir2')
。
您可以按目标目录split
路径,从列表中取出第一个元素,然后将目标目录添加到目标路径。
path = "dir1/dir2/dir3/file.py"
def findparent(path: str, dir_: str) -> str:
return path.split(dir_)[0] + dir_
print(findparent(path, 'dir2'))
# dir1/dir2
如果您使用pathlib
并且路径实际存在:
path.resolve().parent
只是path.parent
也可以,纯粹在语法上,但有一些警告,如文档中所述。
要查找父层次结构的一个特定部分,您可以反复调用parent
,或搜索path.parents
以获取您需要的名称。
假设您当前的工作目录与您的dir1
位于同一位置,您可以执行以下操作:
import os
os.path.abspath("dir1/dir2")
看一下这个! 如何获取父目录位置
我最喜欢的是
from pathlib import Path
Path(__file__).parent.parent.parent # ad infinitum
你甚至可以编写一个循环来到达 dir2,就像这样..
from pathlib import Path
goal_dir = "dir2"
current_dir = Path(__file__)
for i in range(10):
if current_dir == goal_dir:
break
current_dir = current_dir.parent
注意:此解决方案不是最好的,您可能希望使用 while 循环并检查是否确实存在父级。 如果您处于根级别并且没有父级,则它不存在。 但是,假设它存在并且您没有超过 10 个级别的树,则此方法有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.