JavaRush/Java курси/Модуль 1: Python Core/Читання даних з файлу

Читання даних з файлу

Відкрита

2.1 Читання всього файлу

У Python є декілька способів читання текстових файлів. Кожний з цих методів має свої переваги та підходить для різних ситуацій. Основні способи читання текстових файлів: читання всього вмісту, читання построчно, читання з вказуванням кількості символів та інші.

Метод read() зчитує весь вміст файлу в один рядок.

file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

Це дуже простий спосіб читання файлу — один виклик методу, і весь вміст файлу у вас в рядку. Але є і мінуси — якщо файл містить, наприклад, 200 Мб логів, то він буде читатись повільно, а пам'ять вашого додатку швидко витрачатиметься.

2.2 Читання всіх рядків файлу

Існує певна альтернатива методу read() — це метод readlines(). Він теж читає в пам'ять весь файл, але повертає його не в вигляді одного великого рядка, а у вигляді списку рядків — кожен рядок файлу буде окремим рядком списку.

Метод readlines() зчитує всі рядки файлу та повертає їх у вигляді списку рядків.

file = open('example.txt', 'r')
lines = file.readlines()
for line in lines:
    print(line.strip())  # strip() видаляє зайві пробіли та символи нового рядка
file.close()

Такий підхід може бути зручним, якщо ви заздалегідь знаєте, що вам потрібно обробляти вміст файлу построчно. Із мінусів — такий метод може споживати багато пам'яті для дуже великих файлів, оскільки всі рядки завантажуються в пам'ять.

2.3 Ітерація по рядках файлу

Об'єкт file має вбудований ітератор, тому можна пройтись по його вмісту за допомогою циклу for. Це дозволяє читати файл построчно, не завантажуючи весь файл в пам'ять.

Приклад:

file = open('example.txt', 'r')
for line in file:
    print(line.strip())
file.close()

Цей метод більш ефективний з точки зору пам'яті для великих файлів, адже рядки читаються по одній. Проте може бути складнішим для обробки, якщо потрібно повернутись до попереднього рядка або змінити порядок читання.

Давайте ще раз порівняємо цей підхід і попередній:

Використання ітератора Використання функції readlines()
file = open('example.txt', 'r')

for line in file:
    print(line.strip())

file.close()
file = open('example.txt', 'r')

lines = file.readlines()
for line in lines:
    print(line.strip())

file.close()

Такий спосіб простіший і швидший. Проте, коли ви будете працювати з реальними проектами, інколи буде швидше завантажити всі дані відразу в пам'ять і працювати з ними вже там.

Методи readline() і readlines() використовуються для читання рядків з файлу, але працюють вони по-різному. readline() зчитує один рядок за раз, що дозволяє контролювати процес читання та не завантажувати весь файл в пам'ять. Це зручно, коли потрібно обробляти файл построчно або коли файл занадто великий для повного завантаження в пам'ять.

readlines(), навпаки, зчитує всі рядки файлу відразу і повертає їх у вигляді списку. Цей метод зручний, якщо потрібно швидко отримати всі рядки файлу для подальшої обробки. Проте він споживає більше пам'яті, особливо для великих файлів, оскільки весь файл завантажується в пам'ять цілком.

В залежності від задачі readline() може бути переважним, якщо важлива економія пам'яті та контроль над процесом читання, а readlines() зручний, коли потрібно відразу отримати всі рядки файлу для обробки.

2.4 Читання частини файлу

Якщо файл занадто великий, ви можете читати його по частинах. У метод read(n) можна передати параметр n — кількість символів, яке потрібно прочитати. Якщо в файлі символів менше, ніж n, то метод read() просто прочитає файл до кінця.

Приклад:

file = open('example.txt', 'r')
content = file.read(10)  # Читає перші 10 символів
print(content)
file.close()

Це зручно для читання великих файлів частинами або для обробки фіксованих блоків даних. Але такий підхід ігнорує розбиття файлу по рядках — рядки можуть розриватися посередині.

2.5 Читання файлу построчно

Якщо з якихось причин ви не хочете використовувати ітератор, то можете читати файл построчно вручну. Для цього у об'єкта file є метод readline(). Не плутати з readlines().

Метод readline() зчитує один рядок з файлу за раз.

Приклад:

file = open('example.txt', 'r')
line = file.readline()
while line:
    print(line.strip())
    line = file.readline()
file.close()

У цьому прикладі ми читаємо вміст файлу построчно, поки прочитаний рядок не буде порожнім.

2
Задача
Модуль 1: Python Core,  12 рівень1 лекція
Недоступна
Читання всього файлу
Читання всього файлу
2
Задача
Модуль 1: Python Core,  12 рівень1 лекція
Недоступна
Ітерація по рядках файлу
Ітерація по рядках файлу
Коментарі
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Для цієї сторінки немає коментарів.