我正在尝试构建一个基于迷你文本的游戏,就像在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")
但是我的文本文件有多个段落用一行或两行分隔,还有一些自己的格式。例如,这里是一篇尚未最终确定的摘录:
你是马克斯,一个过着平凡生活的大学生。一 那一天,你决定摆脱这种平凡的生活并做点什么 值得冒险并为之自豪!你跳过大学一个星期了 在你的工作场所加班加点,只是为了得到足够的钱。为了 过去1周,你每天工作16个小时,并为此节省了足够的钱 在Belleyard Upon Tyne小镇度过一个舒适的小假期。您 打包行李,第二天就离开家。
因为你必须明智地花钱,所以你决定花钱 在一家较旧的酒店住几天。您在一家名为The Silver Mare的酒店办理了入住手续。 你的前两天花得很棒。然而今天早上之后 你醒来,你醒来感觉很累。不仅如此,你几次 觉得有人跟着你,匍匐在你身后。你回头看了看 多次......只是注意到那里没有人。你忽略了 感觉就像宿醉一样,准备享受你的余生 假日。
日期:1997年10月21日
{更多内容}
当程序运行时,它会读取第一段罚款。如果我错了,纠正我,最后一个条件检测到没有更多的字符要检测,并且卡在循环中。我需要帮助,找出如何以我的文件所写的相同格式读取和显示文件的内容,逐个字符直到文件末尾。
答案 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()