(Python read CSV) Имеет ли смысл писать код, подобный этому или тому подобное? - PullRequest
0 голосов
/ 24 августа 2018
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 голосов
/ 24 августа 2018

Ни один из методов не идеален, потому что вы хотите убедиться, что файл закрыт в конце. Для этого вы можете использовать with, чтобы убедиться, что файл закрыт после того, как вы закончили его обработку. Это позволяет избежать ошибок, когда вы можете забыть вызвать .close() в файле. Более подробную информацию о менеджерах контекста можно найти здесь . Примеры этого можно увидеть в документации .

Итак, что-то вроде:

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

Обратите внимание, однако, что это загружает все содержимое файла в память. Как показывают примеры из документации, вы можете вместо этого перебирать объект reader, если вам не нужен весь файл в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...