Операции над файлами
Limera1n
В программировании мы так или иначе столкнемся с файловыми системами.
Сегодня посмотрим, как мы можем взаимодействовать с файлами.
Для начала посмотрим, как мы можем читать файлы.
Для интерпретатора существует текущая папка, и чтобы узнать, что это за папка, мы можем проделать такое:

Просто pwd, довольно просто, неправда ли?
Дальше в этой папке мы создадим новый файл с помощью команды %%writefile и впишем в него, например, телефонные номера:

Теперь чтобы узнать его параметры в Python есть функция open:

Где TextIOWrapper - тип файла, name - имя, mode - режим чтения r, и определенный код кодировки.
Чтобы прочитать файл, то есть получить с него данные, нужно использовать объект, который получили и вызвать на нем функцию read. Функция read так же возвращает объект.

Так же отмечу, что по умолчанию интерпретатор создает и открывает файлы в текущей директории.
Объект типа TextIOWrapper содержит внутри себя курсор, который по мере чтения файла бежит вперед, и после того, как мы вызвали функцию read - он добежал до конца, и если теперь мы пропишем file.read(), то ничего не увидим. То есть, если мы пытаемся читать достигнувший конец файл, то мы ничего не увидим.
Но курсором можно управлять:

Функция seek позволяет перемещать курсор.
Посмотрим, какой тип у data:

Ага, мы видим, что это у нас тип str, то есть строка. А если мы хотим, чтобы у нас был список? Для этого мы можем использовать функцию file.readlines:

Теперь у нас тип 'list', а вывод говорит нам, что мы имеем 4 строки.
А что если мы хотим прочитать файл из другой директории?
В таком случае мы можем передать полный путь. Притворимся, что наш файл лежит в другой директории:

После окончания работы над файлом мы можем его закрыть, чтобы не загружать память:
