\n und \\n und \n\n aus Datei entfernen

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
Lena
User
Beiträge: 22
Registriert: Mittwoch 24. Juni 2015, 09:37

Hallo!

Ich nehme an, für euch ist das eine einfache Frage^^
Ich lasse in meinem Programm eine Datei öffnen und lesen. Der Inhalt wird in eine Liste gepackt. Nur habe ich das Problem, das eben auch die Leerzwichen und die Newlines in der Liste als Element vorhanden sind. An sich ist das nicht schlimm, jedoch wird nachher mit random ein Element aus der Liste ausgewählt. Damit dieses Element dann eben nicht so Charakter hat, möchte ich mit einer while Schleife veranlassen, dass in einem solchen Fall nochmal ausgewählt wird. Jedoch habe ich schon einieg Varianten ausprobiert , um newlines wegzubekommen. Ich finde jedoch nicht den richtigen reg. Ausdruck oder die Schreibweise....

Code: Alles auswählen


while losung=="" or losung=="\\n" or losung==("\n\n"*):
       zahl=len(einzel)
       raus=random.randint(0,zahl)
       befehl=einzeö[raus]
 print(befehl)
   

es geht eig nur um die Formulierung in der while-zeile....

Würd mich über antworten freuen!!!
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Lena: hast Du jetzt Dein Pflanzenprojekt aufgegeben oder hängt das immer noch alles zusammen? Es gilt immer noch das in den anderen Threads bereits gesagte: Lern erstmal die Grundlagen von Python. Mit dem gezeigten Code kann niemand etwas anfangen. Das ist kein syntaktisch richtiges Python, die Schleife wird entweder nie oder endlos durchlaufen, weil losung innerhalb von while nicht geändert wird. Statt randint solltest Du randrange nehmen, weil Du sonst einen Indexerror bekommst und statt randrange und den Zeilen 3 bis 5 solltest Du random.choice nehmen. Woher kommen losung, einzel und einzeö?
Was für eine Datei wird da wie gelesen?
Lena
User
Beiträge: 22
Registriert: Mittwoch 24. Juni 2015, 09:37

das ist ja nur ein Ausschnitt und einzeö ist ein Tippfehler....wie gesagt es geht nur um die Reg. Ausdrücke mit "\n" und "\\n"...den Rest krieg ich hin...
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Lena: Dein Ansatz ist falsch. Zum einen brauchst Du keine regulären Ausdrücke, sondern strip, zum anderen ist es schlecht, ungefilterten Text aus einer Datei zu lesen und jedesmal wenn man den Inhalt braucht, umständlich zu filtern. Schon beim Einlesen müssen die Daten in eine Form gebracht werden, die für die spätere Benutzung geeignet ist. Daher die Frage, wo und wie Du die Datei liest.
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Wie auch anderswo nochmal der Tipp: Benutze einfach JSON und hör auf, das Rad neu zu erfinden.. :mrgreen:
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten