Перейти до змісту

Запис і читання текстових файлів

write()

write() приймає у якості аргумента символьний рядок, який, власне, і записується у файл.

Розглянемо приклад:

f = open('myfile.txt', 'w')
f.write('Hello!\n')
f.write('and goodbye')
f.close()

Спочатку ми відкрили файл з ім'ям "myfile.txt" у режимі запису. Далі ми записуємо у файл два символьні рядки, і потім закриваємо файл. Усе просто.

Зауважте: ми явно розділяємо рядки тексту за допомогою символу '\n'.

writelines()

Writelines() отримує в якості аргумента послідовність символьних рядків (список, кортеж, ...) і записує усі елементи послідовності у файл:

a = ['Hi','there!']
f = open('myfile.txt', 'w')
f.writelines(a)
f.close()

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

Hithere!

read()

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

readline()

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

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

readlines()

А чи можна отримати вміст усього файлу але окремими символьними рядками? Ну якщо дуже хочеться, то звісно так.

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

Зауважте що символ нового рядка '\n' також буде присутнім у кожному символьному рядку.

Файл як послідовність

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

Напишемо програму яка зчитує з текстового файлу рядок за рядком і виводить їх:

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