我需要从文本文件中创建用户列表

时间:2013-02-08 20:13:13

标签: python list text

我有一个数据文本文件。它看起来像这样,但有几百行。

Test: 0
AssignentDone
UserDone
johndoe
Assignment8
Resp: YES
Trade: YES
Journal: YES

我需要构建一个用户名列表。每个人下的数据都是杂乱无章的,但在每个人的数据末尾是“UserDone”行,然后下一行是新用户的名称。

我有这个

def get_names( file ):
    with open("userdata.txt", "rt") as file:
        for line in file:
            if "UserDone" in line:
                students= list(file.readlines()[1])`

当我跑步时,我得到了

ValueError: Mixing iteration and read methods would lose data

有什么方法可以让python识别“UserDone”行,然后将下一行添加到列表中?

2 个答案:

答案 0 :(得分:1)

你不能使用文件迭代和readline,或者你弄得一团糟,而python很想让你知道。尝试类似下面的内容(我确信它可以以更智能的方式完成)

def get_names( file ):
    savenext = False
    with open("userdata.txt", "rt") as file:
        for line in file:
            if savenext == True:
                students= line
                savenext == False

            if "UserDone" in line:
                savenext = True

答案 1 :(得分:0)