Seite 1 von 1

Automatische durchnummerierung von X Einträgen

Verfasst: Freitag 10. August 2012, 11:55
von NicNac
Hallo

Ich hab gerade mal wieder einen Hänger und deshalb frage ich euch. In meinem PyScript werden durch Usereingaben jeweils in 2 Datein Username und ein Passwort gespeichert beide getrennt. Nun hat mein Menü einen Punkt der lautet "Auflistung aller Einträge"

Wie bekomme ich es nun hin das er mir alle durchnummeriert anzeigt? Also das Anzeigen ist ja kein problem mittels einer for schleife
Aber irgendwie haut es nich hin das er 1,2,3,4,5 ect. Zumal die Einträge ja Variable sind oder fortlaufend wie auch immer.

Hoffe ihr habt den richtigen Tipp für mich
Liebe Grüße

Re: Automatische durchnummerierung von X Einträgen

Verfasst: Freitag 10. August 2012, 12:08
von EyDu
enumerate ist in diesem Fall dein Freund. Ich hoffe aber, dass du nicht wirklich die Kennwörter als Klartext irgendwo in eine Datei gepackt hast.

Re: Automatische durchnummerierung von X Einträgen

Verfasst: Freitag 10. August 2012, 12:53
von NicNac
Nein diese sind Verschlüsselt ;) Danke für den perfekten Hinweis das hab ich gesucht

Re: Automatische durchnummerierung von X Einträgen

Verfasst: Freitag 10. August 2012, 13:17
von NicNac
Hm moment mit "enumerate" gibt er aber lediglich den Speicherplatz aus.

Re: Automatische durchnummerierung von X Einträgen

Verfasst: Freitag 10. August 2012, 14:01
von cofi
Was meinst du mit Speicherplatz?

So ein Code ist gemeint:

Code: Alles auswählen

for i, user in enumerate(users, 1):
    ...
Wenn du aber mehrere haben willst ist `itertools.count` evtl schoener:

Code: Alles auswählen

for i, user, password in itertools.izip(itertools.count(1), users, passwords):
    ...

Re: Automatische durchnummerierung von X Einträgen

Verfasst: Samstag 11. August 2012, 09:27
von NicNac
Danke ja ich hatte ein Fehler in der Auführung, jetzt klappts wunderbar
Super ;) nur noch eine Frage dazu

Die Einträge in meiner Datei sind untereinander daher gibt er mir diese mit einem \n
hinten dran aus kann man das irgendwie entfernen? Sieht einfach nicht schön aus

Re: Automatische durchnummerierung von X Einträgen

Verfasst: Samstag 11. August 2012, 09:41
von BlackJack
@NicNac: Klar kann man die entfernen. Das ist eine Grundoperation auf einem Grunddatentyp — sollte also in jedem anständigen Anfängertutorial vorkommen. :-)

Re: Automatische durchnummerierung von X Einträgen

Verfasst: Samstag 11. August 2012, 10:52
von snafu
Um Zeilenenden beim Lesen aus einer Datei loszuwerden, fallen mir zwei Möglichkeiten ein:

Code: Alles auswählen

import os

def getlines1(filename):
    with open(filename) as outfile:
        # liest Dateiinhalt komplett ein und splittet den String
        return outfile.read().splitlines()

def getlines2(filename):
    with open(filename) as outfile:
        for line in outfile:
            # speicherschonender, weil immer nur eine Zeile verarbeitet wird
            yield line.rstrip(os.linesep)
Wenn die Datei nicht allzu groß ist, dann würde ich dir zur Vorgehensweise in `getlines1()` raten. Dürfte insbesondere für einen Anfänger auch leichter zu verstehen sein als die zweite Variante. ;)