【发布时间】:2017-07-20 13:13:37
【问题描述】:
读入文件内容的问题在于,当读入一个列表时,它会将其格式化为一个大字符串。学生需要能够从文件中“读取”数据,以隔离 ID 号并返回学生(例如)。
我知道有几种方法可以做到这一点,例如,正则表达式、转换为字符串和使用 split 方法,但出于教学目的,我会对最简单、最优雅的方法(以及优雅,我的意思是避免多个不必要的步骤)。理想情况下,有没有办法直接从文本文件中以所需格式将其读入列表:
例如,
而不是当前格式(其中还包括我需要删除的 \n):
['001,Joe,Bloggs,Test1:99,Test2:100,Test3:33\n', '002,Ash,Smith,Test1:22,Test2:63,Test3:99\n']
要求的格式:1d 或 2d 列表,如下所示
[['001','Joe','Bloggs','Test1:99','Test2:100','Test3:33'],['002','Ash','Smith','Test1:22','Test2:63','Test3:99']]
我很高兴人们发布包括 reg ex 和 split string 在内的解决方案,因为它会帮助其他人,但是有没有更简单的方法?
带有文本文件的完整代码列表(在线复制:
代码:
f = open("studentinfo.txt","r")
myList = []
for line in f:
myList.append(line)
print(myList)
print()
print()
print(myList[0])
myList.split(",")
print(myList)
#split the list where all the individual elements in the current string (in the list) are split up at the ","
文本文件:
001,Joe,Bloggs,Test1:99,Test2:100,Test3:33
002,Ash,Smith,Test1:22,Test2:63,Test3:99
【问题讨论】: