我想从包含以下数据的文件创建列表列表:
101 Rahul
102 Julie
103 Helena
104 Kally
代码
lis = []
with open("student_details.txt" , "r+") as f:
for i in range(1,3,1):
for data in f.read().split():
lis.append(data)
print(lis)
我想要的输出
[[101,Rahul] ,[102,Julie] ,[103,Helena] ,[104,Kally]]
我得到的输出
['101', 'Rahul', '102', 'Julie', '103', 'Helena', '104', 'Kally']
最佳答案
您可以逐行读取句柄或使用 readlines()
、拆分每一行、附加每个结果等...修复您的代码需要删除 range
循环只读取文件 3 次(但第一次只有效读取一次),并附加行的拆分项目,使用列表理解更 pythonic:
with open("student_details.txt" , "r+") as f:
lis = [line.split() for line in f]
请注意,line.split()
(不带参数)的妙处在于它会自动去除行终止符。
但您可以使其更简单:csv
模块为您完成所有解析:
import csv
with open("student_details.txt" , "r") as f:
cr = csv.reader(f,delimiter=" ")
# iterate on rows and generate list of lists:
result = list(cr)
关于python - 如何将文件读取到列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44413740/