删除Python中的Chars

时间:2009-02-14 13:46:31

标签: python text-processing

有人知道如何删除特定字符后面的所有字符吗?

像这样:

http://google.com/translate_t

进入

http://google.com

4 个答案:

答案 0 :(得分:6)

如果你问的是一个抽象的字符串,而不是你可以使用的网址:

>>> astring ="http://google.com/translate_t"
>>> astring.rpartition('/')[0]
http://google.com

答案 1 :(得分:5)

对于网址,使用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 :(得分:2)

str="http://google.com/translate_t"
shortened=str[0:str.rfind("/")]

应该这样做。 str [a:b]返回python中的子字符串。 rfind用于查找字符序列的索引,从字符串的末尾开始。

答案 3 :(得分:2)

如果你知道角色的位置,那么你可以使用切片语法来创建一个新的字符串:

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

要查找位置,您可以使用find()index()字符串方法。 split()partition()方法也可能有用。 这些方法记录在Python docs for sequences

删除字符串的一部分是不可能的,因为字符串是不可变的。

如果您要处理网址,那么您一定要使用urlparse library。它允许您将URL拆分为其部分。如果你只想删除部分文件路径,那么你必须自己做。