2017-06-02 121 views
1

我有这个路径获取文件夹

c:\JAVA\eclipse\java-neon\eclipse\configuration\ 

我想回去 或

c:\JAVA\eclipse\java-neon\eclipse\configuration\S\D\CV\S\D\D\AAAAA 

得到“AAAAA”

我不要最后一个文件夹“配置”在os.path上找不到这个函数 谢谢

+0

如果您仔细确保没有尾随斜线,请参见[os.path.basename()](https://docs.python.org/ 2/library/os.path.html#os.path.basename)做你想做的事情。 – asongtoruin

+0

[如何只获取Python路径的最后部分?](https://stackoverflow.com/questions/3925096/how-to-get-only-the-last-part-of-a- path-in-python) – McGrady

回答

0

假设你知道你有一个分隔符sep,这应该做到什么你问:

path.split(sep)[-1] 

哪里path是包含你的路径str

如果你不知道什么隔板可以拨打

os.path.sep 
+0

我想在函数中构建 – JONI6543

+0

@ JONI6543:split *是一个字符串的内置函数吗? – Fabian

+0

内建像os.path.getfolder() – JONI6543

0

您可以使用os.path.split根据路径分隔符分割:

os.path.split(path)[-1] 
+0

我想建立在功能 – JONI6543

+0

os.path.split(路径)[ - 1] – JONI6543

0

请检查代码

import os 


def getFolderName(str): 
    if(str.endswith("\\")): 
     str = str[0:-2] 
    return os.path.split(str)[-1] 

print(getFolderName(r'c:\JAVA\eclipse\java-neon\eclipse\configuration\S\D\CV\S\D\D\AAAAA')) 
+0

没有好的 如果路径像c:\ a \ b \ 那不返回b (因为\最后) – JONI6543

+0

加上'if(str.endswith(“\\”)): str = str [0:-2]'check。 – saul

0

如果你想探索你的路径尝试这样的事情

def explore(path): 
    finalpaths = [] 
    for paths in os.listdir(path): 
     nextpath = path + '/' + paths 
     if os.path.isdir(nextpath): 
      finalpaths.extend(explore(nextpath)) 
     else: 
      finalpaths.append(path) 
    return finalpaths 

然后如果你运行

set(explore(path) 

你会获得可以在该目录中的所有文件夹列表(最低的文件夹下就可以得到)

这适用于UNIX ,您可能需要将其更改为\而不是/用于Windows