2016-10-09 79 views
0

我正在嘗試構建一個基於迷你文本的遊戲,就像在python中的第一個項目一樣。我決定將我的故事和內容寫入文本文件。我正在設計遊戲,以便讀取文件中的每個字符並立即將其打印到屏幕上。使用python中的read()讀取預格式化的文件

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") 

但是我的文本文件有多個由一兩行分隔的段落,還有一些自己的格式。例如,這裏是一個摘錄,尚未完成intr:

你是馬克斯,一個生活在平常生活中的大學生。一天 一天,你決定擺脫這種平凡的生活,做一些值得冒險和值得驕傲的事情 !你在大學裏跳了一週, 在你的工作場所加班,只是爲了獲得足夠的錢。對於過去1周的 ,你每天工作16個小時,並且已經節省了足夠的錢在 在Belleeard Upon Tyne小鎮度過一個舒適的小假期。你打包你的行李,第二天離開你的房子。

由於您必須明智地花錢,您決定在一家較舊的酒店度過您的 天。你入住了一家名爲The Silver Mare的酒店。 你的前兩天度過了真棒。然而今天早上,在你醒來後,你醒來後覺得很累。不僅如此,你幾次感到有人跟隨你,並在你後面爬行。你多次回頭看看 ......只能注意到那裏沒有人。你忽略了 ,因爲宿醉應有的感覺,並準備享受你剩餘的 假期。

日期:1997年10月21日

{更多內容}

當程序運行時,它讀取第一段罰款。如果我錯了,糾正我,最後一個條件檢測到沒有更多字符可以檢測,並且卡在循環中。我需要幫助確定如何閱讀和顯示文件的內容,完全採用與我的文件相同的格式,逐字符直到文件結尾。

+1

爲什麼不一次全部讀完*然後*想一下如何顯示它? – jonrsharpe

+0

我無法準確理解如何在不使用某些嵌套循環的情況下輕鬆讀取單個字符,因此我正在讀取每個字符並立即打印。 –

回答

1

爲什麼試圖逐字讀字符?將它全部讀入緩衝區,然後逐字顯示出來

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

啊謝謝!這工作非常完美。從此一小時以來,我一直在b my我的腦袋。 –

相關問題