如何在python中删除字符串的最后一个字符?

时间:2015-11-26 14:18:07

标签: python regex string

我有一个文件路径作为字符串并尝试删除最后一个' /'从最后开始。

-1

我一直在试用正则表达式,但它只是不断删除所有' /'。有没有更简单的方法来删除没有正则表达式的最后一个字符?

8 个答案:

答案 0 :(得分:12)

正如您所说,您不需要使用正则表达式。您可以使用rstrip

my_file_path = my_file_path.rstrip('/')

如果最后有多个/,则会删除所有这些内容,例如'/file.jpg//' - > '/file.jpg'。从你的问题来看,我认为没问题。

答案 1 :(得分:9)

最简单的是

正如@greggo指出的那样

string="mystring";
string[:-1]

答案 2 :(得分:2)

您可以使用@Override public void reload(ResourceConfig configuration) { try { new WebComponent(new WebServletConfig(this), configuration); } catch (ServletException e) { LOGGER.log(Level.SEVERE, "Reload failed", e); List<ResourceModelIssue> resources = Collections.emptyList(); throw new ModelValidationException(e.getMessage(), resources); } super.reload(configuration); }

String.rstrip

答案 3 :(得分:2)

对于路径,请使用os.path.abspath

import os    
print os.path.abspath(my_file_path)

答案 4 :(得分:1)

最简单的方法是使用切片。 如果x是你的字符串变量,那么x [: - 1]将返回没有最后一个字符的字符串变量。 (BTW,x [-1]是字符串变量中的最后一个字符) 您正在寻找

my_file_path =&#39; / home / ro / A_Python_Scripts / flask-auto / myDirectory / scarlett Johanson / 1448543562.17.jpg /&#39; my_file_path = my_file_path [: - 1]

答案 5 :(得分:0)

要删除最后一个字符,只需使用切片:my_file_path[:-1]。如果您只想删除一组特定字符,请使用my_file_path.rstrip('/')。如果您将字符串视为文件路径,则操作为os.path.dirname。如果路径实际上是一个文件名,我宁愿想知道首先从哪里获得额外的斜杠。

答案 6 :(得分:0)

无需使用昂贵的regex,如果勉强需要,请尝试 - 使用上次r'(/)(?=$)'捕获的/模式,并替换为r'',即空白字符。

>>>re.sub(r'(/)(?=$)',r'','/home/ro/A_Python_Scripts/flask-auto/myDirectory/scarlett Johanson/1448543562.17.jpg/')
>>>'/home/ro/A_Python_Scripts/flask-auto/myDirectory/scarlett Johanson/1448543562.17.jpg'

答案 7 :(得分:0)

回答问题:删除最后一个字符,只需使用:string = string[:-1]

如果你想删除最后一个'\'(如果有的话)(或者如果有多个):

while string[-1]=='\\':
    string = string[:-1]

如果是路径,请使用os.path函数:

dir = "dir1\\dir2\\file.jpg\\"   #I'm using windows by the way
os.path.dirname(dir)

虽然我会在最后添加一个斜杠,以防止在原始字符串末尾没有斜杠的情况下丢失文件名:

dir = "dir1\\dir2\\file.jpg"
os.path.dirname(dir + "\\")

当使用abspath时,(如果路径不是绝对的,我猜),会将当前工作目录添加到路径中。

os.path.abspath(dir)