2016-01-13 65 views
-1

我有這個C:/Users/nash08/Desktop/NUKE_OITO_MEDIA/PRODUTORAS/PYTHON/WORK_INTERNO/_CENAS_FX/N10/N01_V01_NK08.%04d.dpx逆re.split

我想刪除一切這就是路徑,直到話produtoras這樣的:

/PRODUTORAS/PYTHON/WORK_INTERNO/_CENAS_FX/N10/N01_V01_NK08.%04d.dpx 

我的正則表達式的知識很一般,唯一的辦法那我習慣是把路徑用/這樣

rpath = path.rsplit('/',1)[0] 
rpath2 = re.split('/',path) 

和指數分開,我想去的地方。

回答

3

您使用正則表達式。 這一工程:

t = "C:/Users/nash08/Desktop/NUKE_OITO_MEDIA/PRODUTORAS/PYTHON/WORK_INTERNO/_CENAS_FX/N10/N01_V01_NK08.%04d.dpx" 
output = re.search(".*(/PRODUTORAS.*)", t) 
print output.group(1) 
>'/PRODUTORAS/PYTHON/WORK_INTERNO/_CENAS_FX/N10/N01_V01_NK08.%04d.dpx' 
+1

也許讓第一點nongreedy('*?')的情況下,有在名稱與PRODUTORAS路徑的多個組件。 –

+0

不錯的主意,這將取決於應用程序。用戶可能需要貪婪的選擇。 – tglaria

+0

ty男人玩得很開心! – mattie

0

如果前綴不改變,這個代碼將工作:

path = "C:/Users/nash08/Desktop/NUKE_OITO_MEDIA/PRODUTORAS/PYTHON/WORK_INTERNO/_CENAS_FX/N10/N01_V01_NK08.%04d.dpx" 
prefix = "C:/Users/nash08/Desktop/NUKE_OITO_MEDIA/" 

print path.strip(prefix) 

#Output: 
>>> 'PRODUTORAS/PYTHON/WORK_INTERNO/_CENAS_FX/N10/N01_V01_NK08.%04d.dpx' 
+0

ty男人很開心! – mattie

1

這裏有一個簡單的方法:

if '/PRODUTORAS/' in mypath: 
    newpath = '/PRODUTORAS/' + mypath.split('/PRODUTORAS/', 1)[1] 

如果你是這隻能使用正斜槓作爲路徑分隔符,並使用大寫字母PRODUTORAS

+0

ty男人有美好的時光!你2 – mattie