2016-01-13 3 views
-1

У меня есть этот C:/Users/nash08/Desktop/NUKE_OITO_MEDIA/PRODUTORAS/PYTHON/WORK_INTERNO/_CENAS_FX/N10/N01_V01_NK08.%04d.dpxInverse re.split

Я хочу, чтобы удалить все, Thats в пути до тех слов 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 man отлично проводят время! – 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 man отлично проводят время! – mattie

1

Вот простой подход:

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

Это работает только если вы находитесь использование косых черт для вашего разделителя путей и PRODUTORAS имеет заглавные буквы.

+0

ty man отлично проводят время! u 2 – mattie