读取多个csv文件并将内容存储为不同名称引用的列表

时间:2019-01-22 17:53:05

标签: python function variables

所以我有基本上可以做到这一点的代码:

[caption]

但是,我希望每次运行该函数时都能为列表分配一个不同的名称。例如def setup_list(file_name): for item in csv file: list = [] list.append(item) list_one等。我该怎么做?

来自评论:

最终目标也是将多个csv文件的内容存储在具有不同名称的几个列表中。这些文件在同一文件中包含鸟类,日期和位置。

我有几个文件,因为用户可能希望创建多个鸟类列表(一个用于在县/州看到的鸟类,另一个用于在世界各地看到的鸟类的文件,等等)

2 个答案:

答案 0 :(得分:1)

您可以为列表创建一个字典,以所需的名称作为键,列表作为值

dictOfLists = {}

def setup_list(file_name, list_name):
    l = []
    for item in csv file:
        l.append(item)
    dictOfLists.update({list_name : l})

重命名变量通常是不切实际或不建议的,在大多数情况下不应该这样做。

答案 1 :(得分:0)

要将多个文件及其内容读入列表,请执行以下操作:

创建数据:

with open("birds1.txt","w") as f:
    f.write(f"""
Bird,Date,Location
Amsel,1.1.2018,Amerika
Drossel,2.1.2018,Alaska
Fink,3.1.2018,Pacific
""")

with open("birds2.txt","w") as f:
    f.write(f"""
Bird,Date,Location
Eagle,1.1.2018,Afrika
Milan,2.1.2018,Eurasia
AngryBird,3.1.2018,Rainbow Meadow
""")

加载数据:

import csv

def load_into_dict(d,filename):
    with open(filename) as f:
        csv_reader = csv.reader(f)
        name = filename.split(".")[0] 
        d[name] = []
        for row in csv_reader:
            if row:
                d[name].append(row)

data = {}
for n in ["birds1.txt","birds2.txt"]:
    load_into_dict(data,n)

已加载数据的使用方式:

print(data)
print(data["birds1"][1])

输出:

{'birds1': [['Bird', 'Date', 'Location'],      ['Amsel', '1.1.2018', 'Amerika'], 
            ['Drossel', '2.1.2018', 'Alaska'], ['Fink', '3.1.2018', 'Pacific']], 
 'birds2': [['Bird', 'Date', 'Location'],      ['Eagle', '1.1.2018', 'Afrika'], 
            ['Milan', '2.1.2018', 'Eurasia'],  ['AngryBird', '3.1.2018', 'Rainbow Meadow']]}

['Amsel', '1.1.2018', 'Amerika']

文档: