如果它是反斜杠,请删除最后一个字符

Ser*_*rov 64 python string

是否有一个函数来阻止字符串中的最后一个字符,如果它是一些特殊字符?例如,我需要删除反斜杠,如果它在那里,并且什么也不做,如果没有.我知道我可以轻松地使用正则表达式,但想知道是否有类似于内置函数的小东西.

Fog*_*ird 112

用于rstrip从字符串的右侧剥离指定的字符.

my_string = my_string.rstrip('\\')
Run Code Online (Sandbox Code Playgroud)

请参阅:http://docs.python.org/library/stdtypes.html#str.rstrip

  • ...如果字符串末尾有多个反斜杠,它将删除多个字符. (14认同)
  • 如果这是关于规范化路径名,那么与OS无关的方法是使用如上所述的strip,但是要剥离的字符是os.sep - 这是Windows的反斜杠,Unix的正斜杠. (7认同)

Ada*_*kin 20

如果您不介意删除所有尾部反斜杠,则可以使用 string.rstrip()

例如:

x = '\\abc\\'
print x.rstrip('\\')
Run Code Online (Sandbox Code Playgroud)

打印:

\abc
Run Code Online (Sandbox Code Playgroud)

但是这有一个小问题(基于你的问题如何措辞):这将删除所有尾随反斜杠.如果你真的只想剥离最后一个角色,你可以这样做:

if x[-1] == '\\': x = x[:-1]
Run Code Online (Sandbox Code Playgroud)


Rob*_*wie 9

如果您只想在多个情况下删除一个反斜杠,请执行以下操作:

s = s[:-1] if s.endswith('\\') else s
Run Code Online (Sandbox Code Playgroud)


Mat*_*ner 7

if s.endswith('\\'):
    s = s[:-1]
Run Code Online (Sandbox Code Playgroud)


Edo*_*odo 6

但是,rstrip函数将删除的不仅仅是最后一个字符.它将删除字符串末尾的所有反斜杠.这是一个简单的if语句,它只删除最后一个字符:

if s[-1] == '\\':
    s = s[:-1]
Run Code Online (Sandbox Code Playgroud)