как разделить строку с конца после определенных вхождений символа

#python

#python

Вопрос:

как разделить нижеприведенную строку после 2-го вхождения ‘/’ с конца:

 /u01/dbms/orcl/product/11.2.0.4/db_home
  

Ожидаемый результат :

 /u01/dbms/orcl/product/
  

Спасибо.

Комментарии:

1. Более простым методом может быть анализ пути с помощью библиотеки путей (например, pathlib ), если это возможно

2. '/u01/dbms/orcl/product/11.2.0.4/db_home'.rsplit('/', 2)[0]

Ответ №1:

Не используйте split , используйте rsplit вместо этого! Это намного проще и быстрее.

 s = '/u01/dbms/orcl/product/11.2.0.4/db_home'
result = s.rsplit('/', 2)[0]   '/'
  

Ответ №2:

 string = "/u01/dbms/orcl/product/11.2.0.4/db_home"
split_string = string.split('/')
expected_output = "/".join(split_string[:-2])   "/"
  

Вы также можете изменить «-2» на минус любое количество имен файлов, которые вам нужно обрезать.

Комментарии:

1. @Adam.Er8 true, мб, исправлено

Ответ №3:

Если вы можете проанализировать ее как путь к файлу, я рекомендую pathlib попробовать:

 from pathlib import Path

p = Path('/u01/dbms/orcl/product/11.2.0.4/db_hom')

p.parent.parent # Returns object containg path /u01/dbms/orc1/product/ 
  

Ответ №4:

 input='/u01/dbms/orcl/product/11.2.0.4/db_home'
output = '/'.join(str(word) for word in input.split('/')[:-2]) '/'