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

13 python regex string

我有一个文件路径作为字符串,并尝试从末尾删除最后一个'/'.

my_file_path = '/home/ro/A_Python_Scripts/flask-auto/myDirectory/scarlett Johanson/1448543562.17.jpg/'
Run Code Online (Sandbox Code Playgroud)

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

Ala*_*air 17

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

my_file_path = my_file_path.rstrip('/')
Run Code Online (Sandbox Code Playgroud)

如果最后有多个/,这将删除所有这些,例如'/file.jpg//'- > '/file.jpg'.从你的问题,我认为这没关系.


sar*_*eph 15

最简单的是

正如@greggo指出的那样

string="mystring";
string[:-1]
Run Code Online (Sandbox Code Playgroud)


tgl*_*ria 5

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

如果您想删除最后一个“\”(如果有一个(或者有多个)):

while string[-1]=='\\':
    string = string[:-1]
Run Code Online (Sandbox Code Playgroud)

如果它是路径,则使用以下os.path函数:

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

尽管我会在末尾“添加”斜杠以防止丢失文件名,以防原始字符串末尾没有斜杠:

dir = "dir1\\dir2\\file.jpg"
os.path.dirname(dir + "\\")
Run Code Online (Sandbox Code Playgroud)

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

os.path.abspath(dir)
Run Code Online (Sandbox Code Playgroud)