逐行读取文本输入并添加到列表中。

问题描述 投票:0回答:1

我有一个函数,它可以逐行读取一个文件,并将其插入到一个textinput中。

    def load_list(self, path, filename):
    self.text_from_file.text = ''
    with open(filename[0], 'r') as file:
        line = file.readline()
        cnt = 1
        while line:
            sentence = "{}".format(line.strip())
            self.text_from_file.text += sentence + "\n"
            line = file.readline()
            cnt += 1

    self.dismiss_popup()

现在文件内容被存储在 text_from_file 变量,即 text_from_file = ObjectProperty(None) 类型(我使用的是kivy)。

我想做的是从 textinput (text_from_file.text),并将每一行添加到一个列表中,所以一行就是列表中的一个项目。我如何读取 textinput 一行一行的?和from file的效果一样吗?我不想在上面的函数中马上做。我想以后在一个单独的函数中进行。

python list kivy textinput file-read
1个回答
0
投票

从一个文件中获取所有行的简单方法是这样的。

with open(filename, 'r') as f:
    lines = [line for line in f]

# do something with lines

EDIT:

要逐行读取一个变量,只需用'\n'分割它,然后遍历结果。

for line in self.text_from_file.text.split('\n'):
    print(line)
© www.soinside.com 2019 - 2024. All rights reserved.