Datei mit neuem Namen abspeichern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Und was hast Du in Deiner Version konkret für diese Parameter an Werten übergeben?
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Code: Alles auswählen

re.sub('\d+', replace, string, count=1)
\d+ : Alle Zahlen von 0-9, die ein- oder mehr als einstellig sind
replace: die Funktion welche um 1 hoch zählt und dessen Ergebnis die erste Zahl ersetzen soll
string: der zu überprüfende Text
count = 1: da ich nur die erste Zahl ersetzen will
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Jankie: ich hatte nach Deiner Version gefragt, nicht meiner.
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Code: Alles auswählen

first_number = re.search('\d+', input).group()
re.sub(first_number, replace(first_number), input, count=1)
first_number: die erste Zahl die er findet, die ein- oder mehr als einstellig sind (als string)
replace(first_number): eine Methode mit dem Parameter first_number (diese Methode erhöht die first_number um +1 und gibt diesen Wert zurück)
input: Der Text indem gesucht und ersetzt werden soll
count = 1, da ich nur die erste Zahl ersetzen will
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Das heißt also, wenn Du die Werte deines Beispielstrings einsetzt:

Code: Alles auswählen

input = "text mit zahl 1556 und auch ne 1556 und ne 14"
new_string = re.sub("1556", "1557", input, count=1)
was nichts anderes ist als ein `str.replace`:

Code: Alles auswählen

new_string = input.replace("1556", "1557", 1)
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Ahh danke, jetzt weiß ich was du meinst. Habe also quasi die Funktion nicht ganz ausgenutzt bzw. falsch benutzt.
Danke für den Hinweis :)
Antworten