Python:读取文本文件并拆分成不同的列表

时间:2016-10-03 11:42:37

标签: python list file text

我有一个包含两行文字的文本文件。每行包含以逗号分隔的学生姓名。

我正在尝试编写一个程序,它将读取每一行并将其转换为列表。我的解决方案似乎有两个列表但我不知道如何区分这两个列表,因为两个列表都被称为“文件列表”。例如,我可能需要附加到第二个列表。我如何区分这两者?

或者它是否可以创建具有不同名称的完全独立的列表?我希望程序能够理想地处理文本文件中的许多行。

我的代码是:

    filelist=[]

    with open("students.txt") as students:

            for line in students:

                    filelist.append(line.strip().split(","))


    print(filelist)

4 个答案:

答案 0 :(得分:2)

你必须创建一个这样的多维数组:

text = open("file.txt")

lines = text.split("\n")
entries = []
for line in lines:
    entries.append(line.split(","))

如果您的文件是

John,Doe
John,Smith

然后条目将是:

[["John", "Doe"], ["John", "Smith"]]

答案 1 :(得分:0)

在您的代码中,filelist将被视为列表列表,因为您向其追加列表,而不是元素, 考虑做filelist += line.strip().split(","),它将连接列表

答案 2 :(得分:0)

完成两行

with open("file.txt") as f:
    qlist = map(lambda x:x.strip().split(","), f.readlines())

with open("file.txt") as f:
    qlist = [i.strip().split(",") for i in f.readlines()]

答案 3 :(得分:0)

如果要查找每行的列表,可以使用字典,其中键是行号,字典条目的值是该行的名称列表。像这样的东西

with open('my_file.txt', 'r') as fin:
    students = {k:line[:-1].split(',') for k,line in enumerate(fin)}

print students

行[: - 1]是在每一行的末尾摆脱回车