You are not logged in.

1

Monday, September 6th 2010, 6:36pm

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!

Python Quellcode

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


Python Quellcode

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


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

2

Wednesday, September 8th 2010, 9:44pm

Wo genau ist das Problem? Was genau willst du speichern?
Die Min und Max Werte?

3

Thursday, September 9th 2010, 6:32pm

Hallo

Python Quellcode

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


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.
=====================================================================================

Python Quellcode

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


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ß

4

Friday, September 10th 2010, 12:54pm

Die Module pickle und csv könnten dein Vorhaben stark vereinfachen.
Ansonsten kopierst im einfachsten Fall deinen Code zum Lesen der Listendatei in das zweite Script. Ich weiß nicht, was dabei schwer sein sollte.

5

Friday, September 10th 2010, 4:53pm

Hallo

wenn ich versuche beide Skripts ineinander zu kopieren, wir immer nur das Abfrage-Skript Augeführt!

Wo finde ich das CSV, und Pickle Modul ?

Gruss

6

Friday, September 10th 2010, 5:56pm

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

7

Thursday, September 23rd 2010, 7:59pm

Hallo,

Quoted

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.

Python Quellcode

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


Zum Speichern und Laden:

Python Quellcode

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


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

Gruss

8

Thursday, September 23rd 2010, 8:45pm

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.

Similar threads

Social bookmarks