Hi Leuts,
ich hab da mal ne frage, wie kann ich es bewerkstelligen, das ich z.B. einen Zähler i initialisiere und der Zähler i bei jedem Start meines Programmes um 1 inkremmentiert wird?
Danke!
Programm starten
Zum Beispiel so:
Du kannst es natürlich auch mit Pickle oder cPickle abspeichern, das dürfte in diesem Falle aber Overkill sein
Code: Alles auswählen
COUNTERFILE = "/tmp/counter"
def ReadCounter():
try:
counter = int(open(COUNTERFILE, "r").readline())
except:
counter = 1
return counter
def WriteCounter():
counter = ReadCounter()
open(COUNTERFILE, "w").write(str(counter+1))
def main():
import atexit
atexit.register(WriteCounter)
print "Programm wurde",ReadCounter(),"mal gestartet!"
if __name__ == "__main__":
main()
Danke für das Programm, aber das ist nicht ganz das was ich suche!Ich suche eher sowas, das ich sowas machen kann:
Auserdem ist der Code ziehmlich lang, gibt es da nicht was einfacheres?
Danke!
Code: Alles auswählen
if aufrufe=='10':
mache das und das
Danke!
mfg
Thomas :-)
Thomas :-)
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!Python Master 47 hat geschrieben:Auserdem ist der Code ziehmlich lang, gibt es da nicht was einfacheres?


lg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Klar, kein Thema:Python Master 47 hat geschrieben:Nee mit einfacher meinte ich eher, eine Funktion eines Moduls, die das macht damit der Code kürzer wird!
Code: Alles auswählen
import countstart
countstart.increase_count()
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: latin-1 -*-
import pickle
countfile = 'count.pickle'
def get_count():
try:
stream = file(countfile, 'r')
count = pickle.load(stream)
stream.close()
return count
except IOError:
return 0
def increase_count(times=1):
count = get_count()
count += times
stream = file(countfile, 'w')
pickle.dump(count, stream)
stream.close()
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
ModelNines Code ist 21 Zeilen Lang, meine ist 23 Zeilen (man könnte beide Lösungen noch kürzer machen, aber wir haben uns bemüht, das schön zu schreiben, nicht kurz). Das ist aber echt nicht viel.Python Master 47 hat geschrieben:Dann hab ich aber wieder so einen langen Code!
Alternativ vergisst du es und du hast die kürzeste Lösung, mit 0 Zeilen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Only give credit where it's due, ich hab das erste Beispiel nicht geschrieben sondern Joghurt.ModelNines Code ist 21 Zeilen Lang...

Aber sonst: unter Windows würde mir noch einfallen das ganze irgendwo in der Registry zu speichern, aber im Endeffekt ist das auch nix anderes als es so in eine externe Datei zu schreiben. Und braucht ähnlich viel Code...

--- Heiko.
Mein Code ist übrigens auch schon als Modul geschrieben...
Deshalb mein ganz heißer Tipp: Editor öffnen, Copy-and-Paste, fertig. Das sind dann 4 oder 5 Mausklicks. Ich stelle den Code sogar in die Public Domain.
Python Master, wenn dir 20 Zeilen zu viel sind, wirst du niemals über ein "Hallo, Welt" Programm hinauskommen...
Deshalb mein ganz heißer Tipp: Editor öffnen, Copy-and-Paste, fertig. Das sind dann 4 oder 5 Mausklicks. Ich stelle den Code sogar in die Public Domain.
Python Master, wenn dir 20 Zeilen zu viel sind, wirst du niemals über ein "Hallo, Welt" Programm hinauskommen...
lol, darum geht es doch gar nicht!Ich hab einige Programme mit 100-200 Zeilen Code aber ich dachte, das es für so eine simple Aufgabe ziehmlich vielJoghurt hat geschrieben:Python Master, wenn dir 20 Zeilen zu viel sind, wirst du niemals über ein "Hallo, Welt" Programm hinauskommen...
Code ist!
Es hätte ja sein können, das es mit einer Funktion eines Modules einfacher geht!
mfg
Thomas :-)
Thomas :-)