странное поведение python str.strip - PullRequest
4 голосов
/ 07 июня 2010
>>> t1 = "abcd.org.gz"
>>> t1
'abcd.org.gz'
>>> t1.strip("g")
'abcd.org.gz'
>>> t1.strip("gz")
'abcd.org.'
>>> t1.strip(".gz")
'abcd.or'

Почему пропал "g" of .org?

Ответы [ 4 ]

8 голосов
/ 07 июня 2010

x.strip(y) удалит все символы, которые появляются в y, в начале и в конце x.

Это значит

'foo42'.strip('1234567890') == 'foo'

, поскольку '4' и '2' оба появляются в '1234567890'.


Используйте os.path.splitext, если вы хотите удалить расширение файла.

>>> import os.path
>>> t1 = "abcd.org.gz"
>>> os.path.splitext(t1)
('abcd.org', '.gz')
8 голосов
/ 07 июня 2010

strip удаляет любые символы ., g и z из начала и конца строки.

1 голос
/ 07 июня 2010

насколько я знаю, полоса удаляет только начало или конец строки.Если вы хотите удалить из всей строки, используйте заменить.

1 голос
/ 07 июня 2010

Аргумент, заданный для strip, представляет собой набор символов, которые нужно удалить, а не подстроку. Из документов :

Аргумент chars - это строка, определяющая набор символов, которые нужно удалить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...