Strings???

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Bitteschön :)
luki19
User
Beiträge: 7
Registriert: Montag 1. November 2010, 10:34

Habe doch noch ein Problem gefunden das ganze Sieht so aus...

Code: Alles auswählen

    pfad = "c:/"
    dateiname="test.txt"
    datei = pfad+dateiname
    in_file = open(datei,"r")
    text = in_file.read()
    in_file.close()
    text=("\n".join(t for t in text.splitlines() if not t.startswith("-")))
    zeilen = [t for t in text.split() if not t[0] in "-1x"]
    test=zeilen[1]
    print(test)
in der datei steht:

-blaa
-blub
1
2
3

ausgabe ist 3 warum?
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

was willst du bei text in

Code: Alles auswählen

zeilen = [t for t in text.split() if not t[0] in "-1x"]
splitten ?

Lass es weg und es geht, obwohl man die Form des ganzen etwas besser gestalten könnte.
Zuletzt geändert von Xynon1 am Montag 1. November 2010, 16:11, insgesamt 1-mal geändert.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

luki19 hat geschrieben: in der datei steht:

-blaa
-blub
1
2
3

ausgabe ist 3 warum?
Weil Zeilen mit "-" oder "1" doch rausgefiltert werden (sollten). Also ist in der Liste das 2. Element (über den Index 1 zu erreichen) eben die "3". Das erste Element ( Index = 0) ist dann eben die "2".

Du solltest wirklich mal ein Tutorial durcharbeiten; das sind doch einfache Basics.

zum Code:
- Pfade setzt man nicht mit "+" zusammen, dafür gibt es die Funktion join() aus dem os.path-Modul.
- Dateien öffnet man mit diesem Konstrukt:

Code: Alles auswählen

with open(filename, "r") as infile:
    text = infile.read()
# die Datei wird automatisch geschlossen
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

luki19 hat geschrieben:Habe doch noch ein Problem gefunden das ganze Sieht so aus...
Das eigentliche Problem ist, dass du ohne wirklich zu verstehen, was du tust, mittels trial & error herumbastelst und damit mehr oder weniger deinem Ziel näher kommst. Wie dir schon geraten wurde, solltest du dir Zeit für die Lektüre eines Tutorials nehmen. Dann kannst du dein Problem in ein paar Stunden (oder auch Tagen) allein lösen. Vermutlich sieht es dann nicht so aus, wie diese Zeile,

Code: Alles auswählen

words = " ".join(t for t in text.splitlines() if not t[0] in "-1x").split()
die dein Problem löst, sondern enthält explizite Schleifen und ein append() etc.
Das macht aber nichts und du hättest das gute Gefühl dabei, es selbst hinbekommen zu haben, statt nur irgendwelche Schnipsel unverstanden neu zusammenzusetzen.
Antworten