Здесь вам не нужны глобальные переменные, ваша функция должна принимать путь в качестве аргумента и возвращать список меню.
import csv
def menu_List(filep):
menulist = [] # store items
try:
with open(filep) as f: # read file
reader = f.readlines()
next(reader, None) #skip the header
for row in reader:
row[2] = int(row[2].strip()) #convert string to int
row[1] = float(row[1].strip()) #convert string to float
if row[2] > 100 and row[2] < 200:
menulist.append(row)
except NameError:
raise ValueError("Variable not set")
menulist.sort(key=lambda x: x[-1])
return menulist
menulist = menu_List("a/path/goes/here")
Не связано с вашим вопросом, вы можете пропустить заголовок, как вы это делали или хотели это:
reader = f.readlines()
for row in reader[1:]: # skip the first line.
...