如何从文本文件中逐段读取数组?

时间:2018-12-05 21:44:51

标签: python arrays

制作基于文本的游戏,并希望通过段落从故事文本文件中读取内容,而不是打印某些字符?

You wake up from a dazed slumber to find yourself in a deep dank cave with moonlight casting upon the entrance...

You see a figure approaching towards you... Drawing nearer you hear him speak...

2 个答案:

答案 0 :(得分:1)

您要这样做:my_list = my_string.splitlines() https://docs.python.org/3/library/stdtypes.html#str.splitlines

答案 1 :(得分:0)

就像@martineau一样,建议您为单独的不同段落使用分隔符。 它甚至可以是换行符(\ n),在拥有换行符之后,您将读取文件的所有内容,并使用定义的分隔符将其分割。 这样做会生成一个元素列表,每个元素都是一个段落。 一些示例代码:

delimiter = "\n"
with open("paragraphs.txt", "r") as paragraphs_file:
    all_content = paragraphs_file.read() #reading all the content in one step
    #using the string methods we split it
    paragraphs = all_content.split(delimiter)

这种方法具有一些缺点,例如读取所有内容,并且如果文件很大,那么在故事发生时,您会用现在不需要的内容填充内存。

看看您的文本示例,并知道您将连续打印检索到的文本,一次阅读一行可能是一个更好的解决方案:

with open("paragraphs.txt", "r") as paragraphs_file:
   for paragraph in paragraphs_file: #one line until the end of file
       if paragraph != "\n":
          print(paragraph)

显然,在需要的地方添加一些逻辑控件。