我有一个包含两行文字的文本文件。每行包含以逗号分隔的学生姓名。
我正在尝试编写一个程序,它将读取每一行并将其转换为列表。我的解决方案似乎有两个列表但我不知道如何区分这两个列表,因为两个列表都被称为“文件列表”。例如,我可能需要附加到第二个列表。我如何区分这两者?
或者它是否可以创建具有不同名称的完全独立的列表?我希望程序能够理想地处理文本文件中的许多行。
我的代码是:
filelist=[]
with open("students.txt") as students:
for line in students:
filelist.append(line.strip().split(","))
print(filelist)
答案 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]是在每一行的末尾摆脱回车