Python 从csv文件创建元组列表
我是python初学者,正在努力创建和保存一个包含python中csv文件元组的列表 我现在得到的代码是:Python 从csv文件创建元组列表,python,list,csv,tuples,Python,List,Csv,Tuples,我是python初学者,正在努力创建和保存一个包含python中csv文件元组的列表 我现在得到的代码是: def load_file(filename): fp = open(filename, 'Ur') data_list = [] for line in fp: data_list.append(line.strip().split(',')) fp.close() return data_list 然后我想保存文件 def sa
def load_file(filename):
fp = open(filename, 'Ur')
data_list = []
for line in fp:
data_list.append(line.strip().split(','))
fp.close()
return data_list
然后我想保存文件
def save_file(filename, data_list):
fp = open(filename, 'w')
for line in data_list:
fp.write(','.join(line) + '\n')
fp.close()
不幸的是,我的代码返回的是列表列表列表,而不是元组列表。。。有没有一种方法可以在不使用csv模块的情况下创建一个包含多个元组的列表?
split
返回一个列表,如果需要元组,请将其转换为元组:
data_list.append(tuple(line.strip().split(',')))
请使用csv模块。第一个问题:为什么列表不好?在“鸭子打字”的意义上,这应该是好的,所以也许你再考虑一下 如果您真的需要一个元组列表,只需要做一些小的更改 换线
data_list.append(line.strip().split(','))
到
就这样
如果您想要摆脱自定义代码(代码越少越好),您可以坚持使用-模块。我强烈建议使用尽可能多的库方法
为了展示一些高级Python功能:您的load\u文件
-方法也可以如下所示:
def load_file(filename):
with open(filename, 'Ur') as fp:
data_list = [tuple(line.strip().split(",") for line in fp]
我在这里使用列表理解,它非常简洁,易于理解
此外,我使用
with
-语句,它将关闭文件指针,即使代码中出现异常。在处理外部资源(如文件)时,请始终将与
一起使用。只需在行.strip().split(',')周围换行“tuple()”
,您就会得到一个元组列表。您可以在中看到它的作用。除非我遗漏了一些细微之处-您所做的只是复制文件?为什么不使用csv模块??
def load_file(filename):
with open(filename, 'Ur') as fp:
data_list = [tuple(line.strip().split(",") for line in fp]