python - 如何将文件读取到列表列表?

标签 python list file nested

我想从包含以下数据的文件创建列表列表:

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/

相关文章:

python - 如何遍历字符串并正确替换 python 中的特定字符?

python - 新手正则表达式攻略

python - python中a<b<c是什么意思?

python - 属性错误: 'Series' object has no attribute 'columns'

java - 如何使用java将字节数组 append 到文件而不覆盖它

file - 如何在 Rust 中获取已打开文件的大小?

php - Linux 上文件/文件夹名称中的特殊字符;重命名 php 函数不起作用

css - 为水平列表中的单个列表项添加边距

r - R 中的 SAS 宏变量

python - list() 函数在 Python 中有什么作用?