2013-10-24 7 views
4

Я новичок в программировании на python, пытаясь удалить строку, содержащую символ косой черты, я ожидал вывод как '/ stack', но дал результат, как показано ниже. Не могли бы вы помочь мне, как я могу достичь ожидаемого результата. Есть ли другой простой способ добиться того же.Как удалить строку, содержащую косую черту?

>>> name='/stack/overflow' 
>>> sub ='/overflow' 
>>> name.strip(sub) 
'stack' 

Заранее спасибо HEMA

ответ

6

Метод .strip не делать то, что вы думаете, что делает:

Docstring: 
S.strip([chars]) -> string or unicode 

Return a copy of the string S with leading and trailing 
whitespace removed. 
If chars is given and not None, remove characters in chars instead. 
If chars is unicode, S will be converted to unicode before stripping 

Так что вы делаете, говоря: «удалить /, о, v, e, r, f, l, o и w от начала или конца этой строки. "

Вместо этого попробуйте расщеплению на /, принимая все, кроме последнего элемента, и воссоединиться:

In [12]: '/'.join("/stack/overflow".split('/')[:-1]) 
Out[12]: '/stack' 

Если вы на самом деле просто хочу, чтобы удалить подстроку «/ перелив», вы можете сделать:

In [15]: "/stack/overflow".replace('/overflow', '') 
Out[15]: '/stack' 
+0

Если он действительно хочет everything- кроме последнего, я мог бы использовать 'os.path.split' вместо этого. – DSM

+1

@ DSM Предполагая, что он или она на самом деле спрашивает, это путь к каталогу ОС, а не, скажем, HTTP-путь или просто строка, разделенная косой чертой. Кроме того, это не удастся в Windows: «Модуль os.path всегда является модулем пути, подходящим для операционной системы, на которой запущен Python и, следовательно, может использоваться для локальных путей». :) –

+0

@Christian nice explain Thanks Much :) – user1559873

0

Прежде всего, необходимо проверить, какие OS вы используете,

, если его Linux/Unix

обычно путь к файлу обозначается /

так что вы можете просто использовать,

>>>name = '/stack/overflow' 

>>>name.split(os.sep) # Here os.sep is nothing but "/" 

['', 'stack', 'overflow'] 

, если это окна,

просто использовать

>>> name.split("/") 
['', 'stack', 'overflow'] 
Смежные вопросы