所以我有基本上可以做到这一点的代码:
[caption]
但是,我希望每次运行该函数时都能为列表分配一个不同的名称。例如def setup_list(file_name):
for item in csv file:
list = []
list.append(item)
,list_one
等。我该怎么做?
来自评论:
最终目标也是将多个csv文件的内容存储在具有不同名称的几个列表中。这些文件在同一文件中包含鸟类,日期和位置。
我有几个文件,因为用户可能希望创建多个鸟类列表(一个用于在县/州看到的鸟类,另一个用于在世界各地看到的鸟类的文件,等等)
答案 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']
文档: