(Python读取CSV)编写这样的代码是否有所不同?

时间:2018-08-24 09:29:44

标签: python file csv

from csv import reader
nfl = list(reader(open("nfl.csv")))

或类似这样:

import csv
f = open("my_data.csv")
csvreader = csv.reader(f)
my_data = list(csvreader)

如果我以第一方式编写代码,这有什么不同吗?它和第二个一样快吗?在现实的企业生活中是如何写的?

1 个答案:

答案 0 :(得分:2)

这两种方法都不理想,因为您要确保最后关闭文件。为此,您可以使用with确保完成处理后关闭文件。这样可以避免可能会忘记在文件上调用.close()的错误。可以在here中找到有关上下文管理器的更多信息。可以在documentation中找到示例。

所以,像这样:

with open('my_data.csv') as infile:
    reader = csv.reader(infile)
    data = list(reader)

但是,请注意,这会将文件的全部内容加载到内存中。如文档示例所示,如果不需要整个文件在内存中,则可以遍历reader对象。