Beim Löschen einer Zeichenkette in Python blieb ich ein wenig hängen, deshalb schrieb ich sie als Erinnerung
Sie können sich beiläufig mit rstrip
, lstrip
wiederfinden.
Möglicherweise möchten Sie lstrip
oder rstrip
verwenden, wenn Sie Präfixe oder Suffixe in Dateinamen wie folgt entfernen:
fileName='test_Ausgabedatei_20191217_001.xlsx'
#Präfix entfernen
print(fileName.lstrip('test_'))
#Ausgabedatei_20191217_001.xlsx
#Suffix entfernen
print(fileName.rstrip('.xlsx'))
# test_Ausgabedatei_20191217_001
Als Ausgabeergebnis scheint es kein Problem zu geben, aber ein Problem tritt auf, wenn die Zeichenfolge wie folgt lautet.
fileName='test_est_Ausgabedatei_20191217_001xsls.xlsx'
#Präfix entfernen
print(fileName.lstrip('test_'))
#Ausgabedatei_20191217_001xsls.xlsx
#Suffix entfernen
print(fileName.rstrip('.xlsx'))
# test_est_Ausgabedatei_20191217_001
Ich möchte, dass nur "test_" oder ".xlsx" verschwindet, aber auch andere Zeichen sind verschwunden.
Die Ursache ist, dass lstrip
oder rstrip
diejenige löscht, die mit der angegebenen Zeichenfolge übereinstimmt.
Wenn das Muster mit einem Präfix gelöscht wird, wird eines der Zeichen in test_
gelöscht.
Wenn es sich um ein Suffix handelt, wird eines von ".xlsx" gelöscht.
Wenn Sie in einem solchen Fall das Präfix oder Suffix entfernen möchten Es scheint gut, "re" zu verwenden, um es mit einem regulären Ausdruck zu löschen. Im Fall des Beispiels
import re
fileName='test_Ausgabedatei_20191217_001.xlsx'
#Präfix entfernen
print(re.sub("^test_", "", fileName))
#Ausgabedatei_20191217_001.xlsx
#Suffix entfernen
print(re.sub(".xlsx$", "", fileName))
# test_Ausgabedatei_20191217_001
Sie können das Präfix oder Suffix fest entfernen.
Beispiele, die mit lstrip
oder rstrip
nicht funktionierten, funktionieren auch, wie unten gezeigt.
import re
fileName='test_est_Ausgabedatei_20191217_001xsls.xlsx'
#Präfix entfernen
print(re.sub("^test_", "", fileName))
# est_Ausgabedatei_20191217_001xsls.xlsx
#Suffix entfernen
print(re.sub(".xlsx$", "", fileName))
# test_est_Ausgabedatei_20191217_001xsls
Recommended Posts