Сейчас, дорогой друг или подруг, с помощью чистого Python мы создадим текстовый файл с расширением ".txt", наполним его строками, а после откроем и прочтем.
Без лишней выводы приступаем к записи кода:
text_file = open('write_it.txt', 'w', encoding='utf-8')
Мы создали переменную "text_file" которой присвоили результат работы функции "open()" с тремя атрибутами:
- Атрибут "write_it.txt"- это имя файла, который функция "open()" открывает.
- Атрибут "w"- это режим доступа функции "open()" к файлу. В данном случае режим записи в текстовый файл. Причем, если файл не существует, он будет создан в каталоге с нашей программой. Поэтому теперь там появился документ "write_it.txt", с которым мы и будем работать.
- Атрибут "encoding='utf-8'"- это один из стандартов кодирования символов Юникода. Подробнее лучше погуглить.
Теперь наполняем созданный файл строками.
text_file.write('Это строка 1\n')
text_file.write('Это строка 2\n')
text_file.write('А это строка номер 3\n')
text_file.close()
Методом "write()" мы построчно записали в файл три разные строки. А с помощью метода "close()" закрыли его.
Как вы могли догадаться, заполнить файл этими тремя строками можно было и одной строчкой кода, например так:
text_file.write('Это строка 1\n Это строка 2\n А это строка номер 3\n')
Теперь прочитаем созданный файл. Начнем с той же переменной "text.file" и функции "open()" у которой изменим лишь второй атрибут с "w" на "r" (режим чтения из текстового файла).
text_file = open('write_it.txt', 'r', encoding='utf-8')
Следующими строчками выведем содержимое файла на экран и закроем файл. Закрывать файл нужно всегда, когда прекращаете с ним работать.
print(text_file.read())
text_file.close()
Код, который должен был получиться, приведен выше. В качестве атрибута функции "print()" выступает переменная "text_file" к которой применен метод "read()". Последней строкой мы вновь закрыли прочтенный файл.
Результат запуска программы:
А теперь еще раз создадим аналогичный текстовый файл, но методом "writelines()":
К переменной "text_file" из прошлой версии кода мы добавили новую переменную "lines", которой присвоили список с теми же строками. А далее методом "writelines()" с атрибутом "lines" добавили эти строки в файл, и закрыли его методом "close()".
Результат проверим чтением файла и выводом содержимого на экран.
Он совершенно аналогичный первому методу.
Таким образом мы только что разобрали два метода записи текстового файла: "write()" и "writelines()", а так же метод чтения "read(). Но вы должны знать, что если в атрибуты "read()" вставить цифру, то он прочтет файл не целиком, а лишь указанное количество символов. И если не закрывая файл применить "read()" повторно, он начнет чтение с того момента, на котором остановился в предыдущий раз. Чтобы вернуться к началу файла, его необходимо будет закрыть и открыть повторно (т.е. "close()" -> "open()").
Напоследок разберем еще один метод чтения "readline()". Его отличительная особенность в том, что читает он не файл целиком, а текущую строку. И если добавить в атрибуты цифру, то он прочтет указанное количество символов из текущей строки. Если же нужно будет прочитать все строки файла и добавить их в список, используйте метод "readlines()", например так:
text_file = open('write_it.txt', 'r', encoding='utf-8')
lines = text_file.readlines()
text_file.close()
print(lines)
Результат:
['Это строка 1\n', 'Это строка 2\n', 'А это строка номер 3\n']
Вернуть строки из получившегося списка на свои места можно с помощью цикла for, но тут вам объяснять уже не нужно.
На этом пока всё и всех земных благ всяк до сюда дочитавшему.