Python 读取数据文件并从对象生成列表

Python 读取数据文件并从对象生成列表,python,list,readfile,Python,List,Readfile,我在一个单独的文件中有一些数据,如下所示: bob 11 20 sam 30 19 jay 50 10 data = [] with open("data.txt") as f: for line in f: data.append(line.split()) 等等。。。我正在努力: 打开文件。 读每一行。 使用该行中的数据创建一个对象。 我是这样说的: with open("data.txt") as f: for lines in f: f

我在一个单独的文件中有一些数据,如下所示:

bob 11 20
sam 30 19
jay 50 10
data = []
with open("data.txt") as f:
    for line in f:
        data.append(line.split())
等等。。。我正在努力:

打开文件。 读每一行。 使用该行中的数据创建一个对象。 我是这样说的:

with open("data.txt") as f:
    for lines in f:
        f.readlines()
data = lines.split()
这是确保每一行都保存在自己的列表中的正确方法吗?
例如[bob,11,20]?

您可以在列表理解中迭代文件生成器,并将每一行拆分为项目列表:

with open("data.txt") as f:
    data = [line.split() for line in f]

不,这只会给你最后一行, 您应该这样做:

bob 11 20
sam 30 19
jay 50 10
data = []
with open("data.txt") as f:
    for line in f:
        data.append(line.split())

此代码将帮助您:

data = []
lines = [line.rstrip('\n') for line in open('data.txt')]
for line in lines:
   data.append({'name' : line.split()[0], 'something1' : line.split()[1], 'something2' : line.split()[2]})

您可以非常轻松地循环甚至获取数据信息

今天,仅通过处理大量列表,我可以提供另一种解决方案:将每一行作为列表,并列出这些列表, e、 g.['bob 11 20']、['sam 30 19']、['jay 50 10'] 我使用了这个函数:

def读取: reader=csv.readeropenlist.txt,分隔符=\t 列表=[r代表读取器中的r] 打印列表


处理列表的方法有很多,对项目有效的方法是“正确”的方法。今天早些时候,我将sqlalchemy查询分解成字典,并将它们转换成字符串,然后将它们输出到datetime格式,然后将它们全部追加到一起!如果需要的话,您可以单独保留这些行,或者通过使用函数再次迭代这些行,为您的项目提取更细粒度的数据。祝你好运

我定义了一个Person类作为使用文件的每一行创建的对象的示例

class Person:
    def __init__(self, name, age, weight):
        self.name = name
        self.age = age
        self.weight = weight

    def __str__(self):
        return 'name:{},age:{},weight:{}'.format(self.name, self.age, self.weight)


persons = []
with open('data.csv', 'r') as f:
    lines = f.readlines()
    for line in lines:
        fields = line.split(' ')
        persons.append(Person(fields[0], fields[1], fields[2]))
for person in persons:
    print(person)


你试过了吗?它起作用了吗?