Seite 1 von 1
Python Variable hochzählen
Verfasst: Donnerstag 9. Juli 2015, 16:42
von AssElAss
Hallo zusammen,
wie zählt man in Python eine Variable hoch?
Ausgangspunkt: Textfile mit einem in dem gleiche Wörter vorkommen, gleichen soll einfach nur aufsteigend eine Zahl angehangen werden
Code: Alles auswählen
import fileinput
import time
wert = 1
wert=str(wert)
for line in fileinput.FileInput("D:/test/ueber.txt", inplace=1):
line=line.replace("ZWEDAT","ZWEDAT_" + wert)
print line
Re: Python Variable hochzählen
Verfasst: Donnerstag 9. Juli 2015, 16:46
von snafu
Es gibt verschiedene Möglichkeiten. Man kann den Wertebereich mittels `range(dein_maximum + 1)` beziehen. Man kann `itertools.count()` verwenden. Oder man schreibt `wert += 1`.
Ein Beispiel:
Code: Alles auswählen
template = 'FOOBAR_{}'
for i in range(10):
print(template.format(i))
Re: Python Variable hochzählen
Verfasst: Donnerstag 9. Juli 2015, 21:49
von AssElAss
Leider bin ich ein absoluter Newbie in Sachen Python.
Ausgangsfile sieht so aus : ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT
Soll nachher wieder in einer Zeile ausgegeben werden, am besten direkt ins Textfile
Und zwar so : ZWEDAT_1;BETRAG;KJUOIOI;DHIUID;ZWEDAT_2;BETRAG;KJUOIOI;DHIUID;ZWEDAT_3;BETRAG;KJUOIOI;DHIUID;ZWEDAT_4;BETRAG;KJUOIOI;DHIUID;ZWEDAT_5
Re: Python Variable hochzählen
Verfasst: Donnerstag 9. Juli 2015, 22:31
von snafu
Das könnte man zum Beispiel so lösen:
Code: Alles auswählen
import itertools
import re
def add_counts(s, pattern, start=1):
counter = itertools.count(start)
template = '{match}_{count}'
def replacer(m):
return template.format(
match=m.group(), count=next(counter)
)
return re.sub(pattern, replacer, s)
def run_test():
test_data = (
'ZWEDAT;BETRAG;KJUOIOI;DHIUID;'
'ZWEDAT;BETRAG;KJUOIOI;DHIUID;'
'ZWEDAT;BETRAG;KJUOIOI;DHIUID;'
'ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT'
)
print(add_counts(test_data, 'ZWEDAT'))
if __name__ == '__main__':
run_test()
Viel Spaß beim Durchgehen des Codes. Du wirst sicherlich ein paar Fragen haben. Versuche dir möglichst viele Antworten selbst zu erarbeiten. Nutze dafür zum Beispiel die Python-Dokumentation. Wenn es gar nicht mehr weiter geht, dann stell deine Frage gern hier im Forum.

Re: Python Variable hochzählen
Verfasst: Freitag 10. Juli 2015, 10:09
von AssElAss
Super vielen Dank, das funktioniert auch wunderbar, schreibe das Ganze nun in eine Datei.
kann man den Source-Code soweit erweitern, dass wenn merere gleiche Wörter vorkommen, all dieses nummeriert werden?
Re: Python Variable hochzählen
Verfasst: Freitag 10. Juli 2015, 15:25
von snafu
Ja, kann man.