Lord_of_Rings
@Lord_of_Rings
Python developer

Как лучше читать файл?

Какой код лучше с точки зрения скорости выполнения:
with open('hello.txt', 'r') as file:
    a=file.read()

или
a=''
with open('hello.txt', 'r') as file:
    for line in file:
        a += line
  • Вопрос задан
  • 467 просмотров
Решения вопроса 2
dimonchik2013
@dimonchik2013
non progredi est regredi
https://dev-gang.ru/article/kak-izmerit-vremja-vyp...

если без разницы - 1-5Гб файл сделай

P.S. быстрее будет первый - обертка над OS, второй терпимее к памяти
Ответ написан
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Первый, разумеется.
Любая встроенная функция будет с 99.9% быстрее самопального аналога.
И .read() очевидно быстрее цикла.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alekssamos
Программист любитель
Если файл большой, например, CSV 4 ГБ, тогда нужно обрабатывать по одной строке за раз.
То есть примерно так:
def main():
    original_file = "pp-complete.csv"
    with open(original_file, encoding="UTF-8", newline="") as of:
        reader = csv.reader(of)
        for row in reader:
            Transaction_ID, Price, Date_of_Transfer, Postcode, Property_Type, Old_or_New, Duration,
                        PAON, SAON, Street, Locality, Town_or_City,
                        District, County, PPD_Category_Type, Record_Status = row
# что-то делаешь дальше именно с этой с одной строкой
# и идёшь дальше
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы