[英]create a list of tuples from csv file
我是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 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(','))
至
data_list.append(tuple(line.strip().split(',')))
而已。
如果您想要摆脱自定义代码(代码更少代码更好),您可以坚持使用csv -module。 我强烈建议尽可能多地使用库方法。
要展示一些高级Python功能: load_file
-method也可能如下所示:
def load_file(filename):
with open(filename, 'Ur') as fp:
data_list = [tuple(line.strip().split(",") for line in fp]
我在这里使用列表理解,它非常简洁易懂。
另外,我使用with
-statement,它会关闭你的文件指针,即使你的代码中发生了异常。 请始终使用with
外部资源的工作时,像文件。
只需在line.strip().split(',')
周围包装“tuple()”,你就会得到一个元组列表。 你可以在这个可运行的要点中看到它的实际效果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.