Чтение нескольких CSV-файлов и сохранение содержимого в виде списка под разными именами - PullRequest
0 голосов
/ 22 января 2019

Итак, у меня есть код, который в основном делает это:

def setup_list(file_name):
    for item in csv file:
        list = []
        list.append(item)

Однако я хочу иметь возможность присваивать списку другое имя при каждом запуске функции. Например list_one, list_two и т. Д. Как я могу это сделать?

Из комментария:

Конечная цель также состоит в том, чтобы содержимое нескольких файлов CSV сохранялось в нескольких списках с разными именами. Файлы содержат птиц, даты и местоположение в одном файле.

У меня есть несколько файлов, так как у пользователей может быть несколько списков птиц, которые они хотят составить (один для птиц, замеченных в их округе / штате, другой файл для птиц, видимых во всем мире и т. Д.)

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Чтобы прочитать несколько файлов и их содержимое в списках:

Создать данные:

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']

Документация:

0 голосов
/ 22 января 2019

Вы можете создать словарь для списков, указав желаемое имя в качестве ключа и список в качестве значения

dictOfLists = {}

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

Переименование переменных обычно нецелесообразно или нецелесообразно, и в большинстве случаев этого делать не следует.случаи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...