2017-06-02 120 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