Как моя функция может принимать CSV-файлы в качестве входных данных?

1

Мне нужно взять файл csv в качестве аргумента функции и как пример кода, который у меня есть:

import openpyxl
from openpyxl import load_workbook
import csv
import xlrd


def supermarket(filename):
dictionary = {}
with open(filename, newline='') as filename:
    read_csv = csv.reader(filename, delimiter=',')
    for row in read_csv:
        dictionary += row[0]
        dictionary[row[0]] = row[1]
return dictionary

print(supermarket(prices1.csv))

Однако, когда я отлаживаю код, ошибка трассировки говорит, что это NameError, для которого

цены1

не определено. Мой профессор говорит мне, что мой аргумент должен иметь возможность принимать price1.csv в качестве аргумента, но я не понимаю, как это возможно.

Теги:
csv
xlrd

2 ответа

0

Если это удобно, используйте библиотеку pandas для более эффективного управления CSV файлом.

0

Ваш код на самом деле относится к члену csv переменных prices1, который, очевидно, не существует. Имя файла должно быть строкой. Таким образом, ваш код может быть изменен на это (предполагается, что файл csv находится в том же каталоге, что и ваш рабочий каталог):

import openpyxl
from openpyxl import load_workbook
import csv
import xlrd


def supermarket(filename):
    dictionary = {}
    with open(filename, newline='') as filename:
        read_csv = csv.reader(filename, delimiter=',')
        for row in read_csv:
            dictionary += row[0]
            dictionary[row[0]] = row[1]
    return dictionary

print(supermarket("prices1.csv"))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню