Удалить символы в Python - PullRequest
       15

Удалить символы в Python

2 голосов
/ 14 февраля 2009

Кто-нибудь знает, как удалить все символы за определенным символом ??

как это:

http://google.com/translate_t

в

http://google.com

Ответы [ 4 ]

6 голосов
/ 14 февраля 2009

если вы спрашиваете об абстрактной строке, а не URL, вы можете использовать:

>>> astring ="http://google.com/translate_t"
>>> astring.rpartition('/')[0]
http://google.com
5 голосов
/ 14 февраля 2009

Для URL, используя urlparse :

>>> import urlparse
>>> parts = urlparse.urlsplit('http://google.com/path/to/resource?query=spam#anchor')
>>> parts
('http', 'google.com', '/path/to/resource', 'query=spam', 'anchor')
>>> urlparse.urlunsplit((parts[0], parts[1], '', '', ''))
'http://google.com'

Для произвольных строк, используя re :

>>> import re
>>> re.split(r'\b/\b', 'http://google.com/path/to/resource', 1)
['http://google.com', 'path/to/resource']
2 голосов
/ 14 февраля 2009

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

In [2]: s1 = "abc123"
In [3]: s2 = s1[:3]
In [4]: print s2
abc

Чтобы найти позицию, вы можете использовать методы строк find() или index(). Методы split() и partition() также могут быть полезны. Эти методы описаны в документации Python для последовательностей .

Удалить часть строки невозможно, потому что строки неизменны.

Если вы хотите обрабатывать URL-адреса, вам определенно следует использовать библиотеку urlparse . Это позволяет вам разделить URL на его части. Если вы просто хотите удалить часть пути к файлу, вам придется сделать это самостоятельно.

2 голосов
/ 14 февраля 2009
str="http://google.com/translate_t"
shortened=str[0:str.rfind("/")]

Должен сделать это. str [a: b] возвращает подстроку в python. И rfind используется для поиска индекса последовательности символов, начиная с конца строки.

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