2016-10-09 6 views
0

Ich versuche ein kleines textbasiertes Spiel als erstes Projekt in Python zu erstellen. Ich beschloss, meine Geschichte und Inhalte in Textdateien zu schreiben. Ich entwerfe das Spiel so, dass jedes Zeichen aus der Datei gelesen und sofort auf dem Bildschirm ausgedruckt wird.Lesen einer vorformatierten Datei mit Hilfe von read() in Python

def load_Intro(): 
liOb = open('loadgame.txt','r') 
while True: 
    ch = liOb.read(1) 
    sys.stdout.write(ch) 
    time.sleep(0.002) 
    sys.stdout.flush() 
    if ch == "\n": continue 
    elif ch is None: break 

print("\n") 

Allerdings haben meine Textdateien mehrere Absätze durch eine oder zwei Linien getrennt, und einige seiner eigenen Formatierung. Zum Beispiel hier ist ein Auszug aus noch zu finalisieren Intr:

Sie sind Max, ein College-Student, der ein sehr gewöhnliches Leben lebt. Ein Tag, Sie entscheiden sich, aus diesem gewöhnlichen Leben heraus und etwas tun Wert abenteuerlich und stolz auf sein! Sie haben das College für eine Woche übersprungen und haben Überstunden an Ihrem Arbeitsplatz gemacht, nur um genug Geld zu bekommen. Für die vergangene 1 Woche arbeiteten Sie 16 Stunden am Tag und hatten genug Geld für einen gemütlichen kleinen Urlaub in der kleinen Stadt Belleyard Upon Tyne gespart. Sie packen Sie Ihre Taschen und verlassen Sie Ihr Haus am nächsten Tag.

Da Sie Ihr Geld mit Bedacht ausgeben mussten, entscheiden Sie sich, Ihre Tage in einem älteren Hotel zu verbringen. Sie haben in einem Hotel namens The Silver Mare eingecheckt. Ihre ersten zwei Tage waren fantastisch. Aber heute Morgen, nach Sie aufwachen, Sie aufwachen müde. Nicht nur das, einige Male Sie fühlte jemanden folgen und kriechen hinter dir. Du hast mehrmals zurückgeschaut ...... nur um zu bemerken, dass da niemand ist. Sie ignorieren dieses Gefühl weg als Kater fällig und bereiten vor sich, Ihre restlichen Ferien zu genießen.

Datum: 21. Oktober 1997

{Mehr Inhalt}

Wenn das Programm ausgeführt wird, liest er die ersten Absatz in Ordnung. Korrigiere mich, wenn ich falsch liege, die letzte Bedingung erkennt, dass keine Zeichen mehr zu erkennen sind und bleibt in der Schleife hängen. Ich brauche Hilfe, um herauszufinden, wie ich den Inhalt der Datei genau in dem Format lesen und anzeigen kann, in dem meine Datei geschrieben ist, Zeichen für Zeichen bis zum Ende der Datei.

+1

Warum liest du nicht alles auf einmal, * dann * darüber nachdenken, wie es angezeigt wird? – jonrsharpe

+0

Ich kann nicht genau herausfinden, wie man einzelne Zeichen mit einer kleinen Verzögerung liest, ohne einige verschachtelte Schleifen zu verwenden, und so lese ich jedes Zeichen und drucke es sofort. –

Antwort

1

Warum versuchen, Zeichen für Zeichen zu lesen? Lies alles alles gleichzeitig in den Puffer und zeige es dann Zeichen für Zeichen an

import sys 
import time 

liOb = open('loadgame.txt','r') 
content=str(liOb.read()) 

for i in range(len(content)): 
    sys.stdout.write(content[i]) 
    time.sleep(0.002) 
    sys.stdout.flush() 
+0

Ah danke! Das funktioniert einfach perfekt. Hatte mir seit einer Stunde dafür den Kopf geschlagen. –

Verwandte Themen