我有以下字符串。
a = "/root/LOAD/LOGS/2018-06-15_13:54/"
如何获得输出:
"/root/LOAD/LOGS/"
答案 0 :(得分:6)
您可以根据需要使用os.path.dirname
多次上传目录
>>> import os
>>> a = "/root/LOAD/LOGS/2018-06-15_13:54/"
>>> os.path.dirname(a)
'/root/LOAD/LOGS/2018-06-15_13:54'
>>> os.path.dirname(os.path.dirname(a))
'/root/LOAD/LOGS'
如果要向上移动已知数量的目录,这很容易包装在辅助函数中
def parent_dir(path, n):
if n > 1:
return parent_dir(os.path.dirname(path), n-1)
return os.path.dirname(path)
实施例
>>> parent_dir(a, 2)
'/root/LOAD/LOGS'
答案 1 :(得分:0)
有几种方法,我个人会使用re(import re
)模块。但是也可以在没有附加模块的情况下提取目录。这取决于你是否要查看斜杠(子目录)或字符数是否足够(如果目录名称没有改变)。
>>> a = "/root/LOAD/LOGS/2018-06-15_13:54/"
>>> "/".join(a.split("/")[:-2]) # from right side
'/root/LOAD/LOGS'
>>> "/".join(a.split("/")[:4]) # from left side
'/root/LOAD/LOGS'
>>> a[:15]
'/root/LOAD/LOGS'
答案 2 :(得分:0)
就个人而言,我更喜欢pathlib
模块。
from pathlib import Path
path = Path("/root/LOAD/LOGS/2018-06-15_13:54/")
parent = path.parent # == Path("/root/LOAD/LOGS/")
parent_as_string = str(parent) # == "/root/LOAD/LOGS/"
这也是可重复的
parent_of_parent = path.parent.parent # == Path('/root/LOAD')