在Python中删除开头和结尾的斜杠/

110
我正在使用request.path在Django中返回当前URL,它返回的是/get/category
我需要它变成get/category(没有前导和尾随斜杠)。
我该如何做?

6
为什么你不想要前导斜杠? - Ignacio Vazquez-Abrams
这是在元问题中用作示例,即不是主题。 - Peter Mortensen
4个回答

255
>>> "/get/category".strip("/")
'get/category'

strip() 是做这件事情的正确方式。


9
strip()函数也可以处理多个斜杠“/”。 - John La Rooy
118
请注意,还存在 lstrip()rstrip() 函数,它们可以移除末尾的斜杠但保留开头的斜杠等。 - Mark Amery
18
实际上,我认为您应该使用 strip(os.sep) - Edward Falk
22
对于文件系统路径,“os.path.normpath(path)”将去除末尾的斜杠。 - Åsmund
2
@EdwardFalk 如果服务器是Windows,那么这将会出问题。这里的上下文是URLs。 - CrackerJack9

18
def remove_lead_and_trail_slash(s):
    if s.startswith('/'):
        s = s[1:]
    if s.endswith('/'):
        s = s[:-1]
    return s

str.strip()不同,此函数保证只会同时移除每侧一个斜杠。


8

另一个使用正则表达式的例子:

>>> import re
>>> s = "/get/category"
>>> re.sub("^/|/$", "", s)
'get/category'

-1

你可以尝试:

"/get/category".strip("/")


7
这并没有为接受的答案增添任何内容,而那个答案已经在9年前回答了。 - onlyphantom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接