Python:从文件读入列表

时间:2014-01-15 12:51:57

标签: python file-io

我希望我的程序从.txt文件中读取,该文件的行中的数据排列如下: NUM NUM NAME NAME NAME。我如何将其行读入列表,以便每行成为列表的元素,每个元素的前两个值为int,其他三个为字符串?

因此,文件的第一行:1 23 Joe Main Sto应该变为lst[0] = [1, 23, "Joe", "Main", "Sto"]

我已经有了这个,但它不能完美运行,我确信必须有更好的方法:

read = open("info.txt", "r")
line = read.readlines()
text = []
for item in line:
    fullline = item.split(" ")
    text.append(fullline)

2 个答案:

答案 0 :(得分:4)

使用不带参数的str.split()将空格折叠并自动删除,然后将int()应用于前两个元素:

with open("info.txt", "r") as read:
    lines = []
    for item in read:
        row = item.split()
        row[:2] = map(int, row[:2])
        lines.append(row)

注意这里我们将直接循环到文件对象上,不需要先将所有行都读入内存。

答案 1 :(得分:0)

with open(file) as f:
    text = [map(int, l.split()[:2]) + l.split()[2:] for l in f]