2015-10-29 5 views
1

Предположим, у меня есть строка, text2 = 'C: \ Users \ Sony \ Desktop \ f.html', и я хочу отделить «C: \ Users \ Sony \ Desktop» и «f.html» и сохранить их в разные переменные, что мне делать? Я пробовал регулярные выражения, но я не добился успеха.Как извлечь подстроку из строки в Python?

+1

«\\» на самом деле один символ, поэтому он ничем не отличается от любых других косых черт в вашей строке. – Kevin

+1

'os.path.basename (text2)'? –

+0

Я немного изменил вопрос. Теперь я сохраняю файл в пути как «C: \ Users \ Sony \ Desktop \ f.html» –

ответ

3

os.path.split делает то, что вы хотите:

>>> import os 
>>> help(os.path.split) 
Help on function split in module ntpath: 

split(p) 
    Split a pathname. 

    Return tuple (head, tail) where tail is everything after the final slash. 
    Either part may be empty. 

>>> os.path.split(r'c:\users\sony\desktop\f.html') 
('c:\\users\\sony\\desktop', 'f.html') 
>>> path,filename = os.path.split(r'c:\users\sony\desktop\f.html') 
>>> path 
'c:\\users\\sony\\desktop' 
>>> filename 
'f.html' 
+0

Предположим, что p = 'c: \ users \ sony \ desktop \ f.html', теперь, когда я пишу os.path.split (rp) , то это дает мне ошибку, как написать этот синтаксис, когда путь сохраняется в переменной? –

+1

'r' используется только для строковых строковых констант, чтобы подавить необходимость избегать обратных косых черт. Это означает «сырая строка». Просто вызовите 'os.path.split (p)'. Вместо этого я мог бы ввести «os.path.split» («c: \\ users \\ sony \\ desktop \\ f.html»). –

Смежные вопросы