Ich habe einen Dateipfad als Zeichenfolge und versuche, das letzte '/' vom Ende zu entfernen.
my_file_path = '/home/ro/A_Python_Scripts/flask-auto/myDirectory/scarlett Johanson/1448543562.17.jpg/'
Ich habe es mit Regex ausprobiert, aber es entfernt ständig alle '/'. Gibt es eine einfachere Möglichkeit, das letzte Zeichen ohne Regex zu entfernen?
Wie Sie sagen, brauchen Sie dafür keine Regex. Sie können rstrip
verwenden.
my_file_path = my_file_path.rstrip('/')
Wenn am Ende mehr als ein /
vorhanden ist, werden alle, z. '/file.jpg//'
-> '/file.jpg'
. Aus Ihrer Frage gehe ich davon aus, dass das in Ordnung wäre.
Das einfachste ist
wie @greggo darauf hinwies
string="mystring";
string[:-1]
Sie könnten String.rstrip
verwenden.
result = string.rstrip('/')
Für einen Pfad verwenden Sie os.path.abspath
import os
print os.path.abspath(my_file_path)
Der einfachste Weg ist die Verwendung von slice . Wenn x Ihre Stringvariable ist, gibt x [: - 1] die Stringvariable ohne das letzte Zeichen ..__ zurück. (BTW, x [-1] ist das letzte Zeichen in die String-Variable) .__ Sie suchen
my_file_path = '/ home/ro/A_Python_Scripts/flask-auto/meinVerzeichnis/scarlett Johanson/1448543562.17.jpg /' Mein_Dateipfad = Mein_Dateipfad [: - 1]
Es ist nicht nötig, die teure Variable regex
zu verwenden. Wenn Sie es kaum brauchen, versuchen Sie - Verwenden Sie das Muster r'(/)(?=$)'
, das zuletzt /
erfasst wird, und ersetzen Sie es mit r''
, d.
>>>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'
Beantwortung der Frage: Um das letzte Zeichen zu entfernen, verwenden Sie einfach: string = string[:-1]
.
Wenn Sie das letzte '\' entfernen möchten, falls eines (oder mehrere) vorhanden sind:
while string[-1]=='\\':
string = string[:-1]
Wenn es sich um einen Pfad handelt, verwenden Sie die os.path
-Funktionen:
dir = "dir1\\dir2\\file.jpg\\" #I'm using windows by the way
os.path.dirname(dir)
obwohl ich am Ende einen Schrägstrich hinzufügen würde, um den Dateinamen nicht zu verpassen, falls am Ende der ursprünglichen Zeichenfolge kein Schrägstrich steht:
dir = "dir1\\dir2\\file.jpg"
os.path.dirname(dir + "\\")
Wenn Sie abspath verwenden (wenn der Pfad nicht absolut ist, denke ich), wird das aktuelle Arbeitsverzeichnis zum Pfad hinzugefügt.
os.path.abspath(dir)
Um das letzte Zeichen zu entfernen, verwenden Sie einfach ein Slice: my_file_path[:-1]
. Wenn Sie nur einen bestimmten Zeichensatz entfernen möchten, verwenden Sie my_file_path.rstrip('/')
. Wenn Sie die Zeichenfolge als Dateipfad sehen, lautet die Operation os.path.dirname . Wenn der Pfad tatsächlich ein Dateiname ist, frage ich mich eher, woher der zusätzliche Schrägstrich stammt.