Skripts zusammenstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Skripts zusammenstellen

    Hallo nochmal,

    leider bin ich wieder am Verzweifeln!

    Dass mit der Liste einfügen hat Perfekt geklappt!
    Das Problem ist, ich möchte danach noch weitere Zahlen in dir Listen anhängen, und diese dauerhaft in der Liste speichern!

    Quellcode

    1. minwerte, maxwerte = [], []
    2. datei = open("/home/scenicamd64/Dokumente/Daten/Zahlen.txt", "r")
    3. for zeile in datei:
    4. zeile = zeile.rstrip(" ")
    5. werte = zeile.split(",")
    6. neue_werte = []
    7. for wert in werte:
    8. neue_werte.append(wert)
    9. minwerte.append(werte[6])
    10. maxwerte.append(werte[7])
    11. minwerte.append(min(minwerte))
    12. maxwerte.append(max(maxwerte))
    13. datei.close()
    14. print(minwerte[-10])
    15. print(maxwerte[-10])
    Alles anzeigen


    Quellcode

    1. # -*- coding: utf-8 -*-
    2. class intlist(object):
    3. def __init__(self):
    4. self.ende=False
    5. self.liste=[]
    6. def getint(self,name='/home/scenicamd64/Dokumente/Daten/Zahlen.txt'):
    7. while True:
    8. print 'Bitte geben sie eine Zahl ein fuer',
    9. print name,
    10. print ':',
    11. zahl=raw_input()
    12. # Ende der Listeneingabe =
    13. if zahl=='q':
    14. self.ende=True
    15. break # ja, tschuess
    16. # ist es ein Integer ?
    17. try:
    18. i=int(zahl)
    19. except: # nein, Fehler
    20. print 'Eingabefehler'
    21. continue
    22. # ja, Integer an die Liste anhängen
    23. self.liste.append(i)
    24. break
    25. def min(self):
    26. return min(self.liste)
    27. def max(self):
    28. return max(self.liste)
    29. # Start !!
    30. # erzeuge ein Listenobjekt
    31. minlist=intlist()
    32. # gib Werte ein, bis ein 'q' kommt
    33. while not minlist.ende:
    34. minlist.getint('Minliste')
    35. # gib die Liste aus
    36. print
    37. print minlist.liste
    38. print 'Min:',minlist.min()
    39. print 'Max:',minlist.max()
    Alles anzeigen


    Wie füge ich die beiden Teile zusammen!
    Derzeit bin ich noch etwas am experimentieren =:-)
    Ich hoffe ihr habt Verständnis
    Besten dank
    Gruss
  • Hallo

    Quellcode

    1. minwerte, maxwerte = [], []
    2. datei = open("/home/scenicamd64/Dokumente/Daten/Zahlen.txt", "r")
    3. for zeile in datei:
    4. zeile = zeile.rstrip(" ")
    5. werte = zeile.split(",")
    6. neue_werte = []
    7. for wert in werte:
    8. neue_werte.append(wert)
    9. minwerte.append(werte[6])
    10. maxwerte.append(werte[7])
    11. minwerte.append(min(minwerte))
    12. maxwerte.append(max(maxwerte))
    13. datei.close()
    14. print(minwerte[-10])
    15. print(maxwerte[-10])
    Alles anzeigen


    Dieses Skript fügt aus Zahlen.txt die "Min" und "Max" Werte in die Liste.
    Diese Elemente sollen aber in der Liste erhalten werden, d.h - die sollen in der Liste gespeichert werden.
    =====================================================================================

    Quellcode

    1. # -*- coding: utf-8 -*-
    2. class intlist(object):
    3. def __init__(self):
    4. self.ende=False
    5. self.liste=[]
    6. def getint(self,name='/home/scenicamd64/Dokumente/Daten/Zahlen.txt'):
    7. while True:
    8. print 'Bitte geben sie eine Zahl ein fuer',
    9. print name,
    10. print ':',
    11. zahl=raw_input()
    12. # Ende der Listeneingabe =
    13. if zahl=='q':
    14. self.ende=True
    15. break # ja, tschuess
    16. # ist es ein Integer ?
    17. try:
    18. i=int(zahl)
    19. except: # nein, Fehler
    20. print 'Eingabefehler'
    21. continue
    22. # ja, Integer an die Liste anhängen
    23. self.liste.append(i)
    24. break
    25. def min(self):
    26. return min(self.liste)
    27. def max(self):
    28. return max(self.liste)
    29. # Start !!
    30. # erzeuge ein Listenobjekt
    31. minlist=intlist()
    32. # gib Werte ein, bis ein 'q' kommt
    33. while not minlist.ende:
    34. minlist.getint('Minliste')
    35. # gib die Liste aus
    36. print
    37. print minlist.liste
    38. print 'Min:',minlist.min()
    39. print 'Max:',minlist.max()
    Alles anzeigen


    In diesem Skript werden Zahlen abgefragt.

    Meine Vorstellung war, Zahlen aus der Datei "pickeln", diese Speichern und weitere durch Eingabe hinzufügen, die in der Liste gespeichert werden sollen !

    Danke
    Gruß
  • Hallo,

    Wie wäre es, wenn du ausnahmsweise mal einen Blick in die Python-Dokumentation riskieren würdest? Beide Module sind Teil der Standartbibliothek.


    Was ich nicht schon alles versucht habe, aber leider fehlt mir irgendwie das Verständnis!

    Als erstes soll die Datei in die Listen geladen werden....
    Danach werden weitere Zahlen abgefragt, und in die LISTEN angehangen ...
    Ergebnis wird gezeigt, und danach werden die Listen gespeichert.....und die Schleife fängt von vorne an.

    Es hört sich leicht an, aber wie gesagt das Verständnis fehlt.

    Quellcode

    1. #!/usr/bin/env python
    2. #-*- coding: iso-8859-1 -*-
    3. import os
    4. fname = "/home/scenicamd64/Dokumente/Daten/Zahlen.txt"
    5. minnr = 6
    6. maxnr = 7
    7. sep = ","
    8. minlist = []
    9. maxlist = []
    10. fh = os.popen("tail -n 1000 " + fname)
    11. a = fh.readlines()
    12. fh.close()
    13. for i in a:
    14. i = i.rstrip(os.linesep)
    15. b = i.split(sep)
    16. minlist.append(int(b[minnr]))
    17. maxlist.append(int(b[maxnr]))
    18. x = 0
    19. while True:
    20. c = "Bitte geben sie eine Zahl für die "
    21. if x % 2:
    22. c += "Minimum"
    23. else:
    24. c += "Maximum"
    25. c += "-Liste oder 'q' ein: "
    26. z = raw_input(c)
    27. if z == "q":
    28. break
    29. if z.isdigit():
    30. if x % 2:
    31. minlist.append(int(z))
    32. else:
    33. maxlist.append(int(z))
    34. else:
    35. print 'Eingabefehler'
    36. x += 1
    37. print 'Minimum Minimumliste: ' + str(min(minlist))
    38. print 'Maximum Minimumliste: ' + str(max(minlist))
    39. print
    40. print 'Minimum Maximumliste: ' + str(min(maxlist))
    41. print 'Maximum Maximumliste: ' + str(max(maxlist))
    Alles anzeigen


    Zum Speichern und Laden:

    Quellcode

    1. import string
    2. import pickle
    3. oplist = []
    4. def save(datei,list):
    5. f=open(datei,"w")
    6. p=pickle.Pickler(f)
    7. p.dump(list)
    8. f.close()
    9. def load():
    10. f = open("oplist.txt","r")
    11. oplist = []
    12. p= pickle.Unpickler(f)
    13. oplist.append(p.load())
    14. f.close()
    Alles anzeigen


    Das filehandle habe ich mir auch angeschaut aber leider stehe ich auch vor einem Rätsel

    Gruss
  • Wie wäre es, wenn du deine Fragen etwas konkreter stellen würdest? Versuche mal den Quellcode zu kommentieren und schreibe überall den Zweck der nächsten paar Codezeilen hin. Und dort wo du gar nicht weiterkommst stellst du die Frage. Vielleicht fehlt dir auch nur das Verständnis, weil du den Code ein paar Zeilen vorher falsch interpretierst. Und das wichtigste ist natürlich, dass du zumindest die Wirkung jedes Befehls kennst (den du ja in der Referenz nachschlagen kannst).
    Und bitte konkretisiere deine Frage zum Filehandler.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.