【问题标题】:How do I make multiple lists from a file?如何从一个文件中创建多个列表?
【发布时间】:2020-03-28 11:58:50
【问题描述】:

我正在使用此代码在 tkinter 中制作标签。点击它们后,list1 中的文本变为list2 文本形式。我想将文本附加到 txt 文件中的列表中。

self.list1 = [line.rstrip('\n') for line in open("file.txt", encoding = "utf-8")]
self.list2 = [line.rstrip('\n') for line in open("file2.txt", encoding = "utf-8")]

我必须为每个列表创建一个 txt 文件吗? (如何)我可以从一个文件中创建多个列表吗?

谢谢

【问题讨论】:

  • 无法真正理解您在问什么。您是否尝试从 txt 文件中读取,然后创建一个列表,并且您想从同一个 txt 文件中读取?只需对每个列表使用相同的 file.txt。
  • 但是我该怎么做呢?当我使用我编写的代码时,它会读取文件中的所有行。所以它只列出了一个列表。我解释得对吗?
  • 例如,您希望读取到某个点,假设它读取 list2,然后停止写入 list1 并写入 list2。我说的对吗?
  • 是的,它将读取文件,假设前 5 行将附加到 list1,第二个 5 行将附加到 list2,其余行将附加到 list3。这可能吗?

标签: python list file


【解决方案1】:
def from_file_to_lists(name,lists): #Where lists[0] = list1, lists[1] = list2 etc
    i = 0
    for line in open(name, encoding = "utf-8"):
        line = line.rstrip('\n')
        if "line%s" % (i+1) in line: #if next list in line
            i +=1  #go to next list
            continue #dont write list name inside the list
        lists[i].append(line)
    return lists

#How to call
list0 = []
list1 = []
list2 = []
lists = [list0,list1,list2]
lists = from_file_to_lists("file.txt",lists)

你的 file.txt 应该是这样的

Hello i
am list0
list1
Hello, i am
the second list
list2
i am the last

你在txt文件中的列表编号应该从0开始,否则改变

if "line%s" % (i+1) in line:

if "line%s" % (i+2) in line:

【讨论】:

  • 我想这不是我的意思。这段代码创建了几个列表,但它们的内部都是相同的。对吗?
  • 如何将前 3 行放入第一个列表中,将后 3 行放入第二个列表中?
  • 不,他们没有。第一个列表有前 2 行,第二个列表有 2 个第二行,第三个列表有最后一行。
  • 也许我只是不明白。 ??‍♂️
猜你喜欢
  • 2017-03-30
  • 1970-01-01
  • 2020-06-18
  • 2018-12-21
  • 2016-06-27
  • 2013-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多