我正在使用Python-3,我正在阅读一个文本文件,该文件可以有多个段落用' \ n'分隔。我想将所有这些段落分成一个单独的列表。输入文件中可以有n个段落。
所以这个分割和输出列表的创建应该是动态发生的,这样我就可以通过输入段号作为列表[2]或列表[3]等来查看特定的段落。
到目前为止,我已经尝试了以下过程:
input = open("input.txt", "r") #Reading the input file
lines = input.readlines() #Creating a List with separate sentences
str = '' #Declaring a empty string
for i in range(len(lines)):
if len(lines[i]) > 2: #If the length of a line is < 2, It means it can be a new paragraph
str += lines[i]
此方法不会将段落存储到新列表中(因为我不知道该怎么做)。它只会删除&#39; \ n&#39;并将所有输入行存储到str变量中。当我试图显示str的内容时,它将输出显示为单词。但我需要它们作为句子。
并且我的代码应该存储所有句子,直到第一次出现&#39; \ n&#39;分成一个单独的列表等等。
有关于此的任何想法吗?
更新 我找到了一种方法来打印所有存在的行,直到&#39; \ n&#39;。但是当我尝试将它们存储到列表中时,它将被存储为字母而不是整个句子。以下是参考的代码段
input = open("input.txt", "r")
lines = input.readlines()
input_ = []
for i in range(len(lines)):
if len(lines[i]) <= 2:
for j in range(i):
input_.append(lines[j]) #This line is storing as letters.
甚至&#34; input_ + = lines&#34;存储为字母,而不是句子。
知道如何修改此代码以获得所需的输出吗?
答案 0 :(得分:2)
不要忘记执行input.close()
,否则文件将无法保存。
或者,您可以使用with
。
#Using "with" closes the file automatically, so you don't need to write file.close()
with open("input.txt","r") as file:
file_ = file.read().split("\n")
file_
现在是一个列表,每个段落都是一个单独的项目。
就像2行一样简单。