Привет. В этом видео мы поговорим с вами о файлах и том, как с ними работать. С файлами, на самом деле, в Python'е никаких проблем не должно возникнуть. Все довольно просто. Чтобы открыть файлы мы используем встроенный метод open, встроенную функцию open, и передаем ей filename. У нас возвращается файловый объект, с которым мы потом можем работать, для того чтобы записывать данные или читать данные из файлов. можно их открывать на запись, на чтение, на чтение и запись, и на дозапись. Делается это с помощью модов, которым мы тоже придаем функцию open. Например, a — это дозапись, w — это, очевидно, запись, r — это прочтение, r+ — это запись и чтение одновременно. Точно так же мы можем открывать файл в бинарном виде, то есть работать с бинарными данными, и происходит все аналогично обычному типу. Мы просто добавляем в мод букву b. Чтобы открыть файл, например, на запись, мы передаем мод w в функцию open. Чтобы записать данный файл, мы берем наш файловый объект и пользуемся методом файла write, передавая туда строку. В данном случае мы передаем строку, и наш метод write возвращает количество символов, которые мы записали. Если это будет байтовая информация, то, собственно, это будет не количество символов, а количество байт. Чтобы закрыть файл, нам нужно вызвать метод close, и файл нужно обязательно закрывать. Если вы откроете файл и не закроете файл, может произойти что-нибудь страшное и ужасное. На самом деле нет, но принято файлы закрывать, и мы поговорим с вами о том, как с этим работать. Итак, чтобы открыть файл на чтение и запись, нам нужно использовать r+, и мы можем читать данные из файла с помощью метода read. Read по умолчанию читает столько, сколько сможет. Если файл не поместится в памяти, то это ваши проблемы. Вы также можете указать в методе read конкретное количество информации, которое вы хотите прочитать, передав size, но по умолчанию читается весь файл и выводится, собственно. Здесь мы выводим все строчки, которые туда записали, и видим, что на самом деле информация в файл попала. Очень важный момент. Когда мы прочитали весь файл, у нас указатель того, где мы сейчас находимся в файле — в самом конце. В данном случае это 47 символов. Если мы попробуем прочитать еще раз, то мы ничего не найдем, потому что мы весь файл уже прочитали и у нас пойнтер в самом конце. Для того чтобы прочитать его, например, заново, нам нужно использовать метод seek и перенести указатель на начало файла. Как вы видите, он равен нулю, и теперь мы можем действительно читать данные заново и, например, опять же закрыть файл, потому что файлы всегда нужно закрывать. Собственно, кроме обычного метода read, есть также полезные методы для работы со строками, которые позволяют вам читать строки, одну, например, или несколько. Чтобы прочитать конкретно одну строку, можно использовать метод readline у того же файлового объекта, и метод вернет строку, разбив по символу переноса строки. Как видите, у нас вернулась только первая строка без второй. Если вам интересно прочитать сразу все строки, разбить их по символу переноса строки и записать все это, например, в список, можно использовать метод readlines. Он сделает именно это — вернет список строк, разбитых по символу перевода строки. Если мы закроем файл и попробуем его прочитать, очевидно, у нас ничего не получится, потому что закрытый файл прочитать нельзя. Будьте внимательны. На самом деле, я рекомендую вам работать с файлами немного другим образом. Существует специальная вещь, называемая контекстный менеджер, который вам позволяет не заботиться о закрытии файлов. Вы можете открыть файл с помощью оператора with, и записать в файловый объект переменную f и потом работать с ним внутри этого контекстного блока и не закрывать его, потому что контекстный менеджер заботится об этом за вас. Про контекстный менеджер мы поговорим позднее, а пока просто можете использовать эту конструкцию и не заботиться о том, чтобы закрывать файл. Итак, с файлами в Python работать довольно просто. У нас есть файловые объекты, мы можем в них писать, из них читать. Не забывайте закрывать файлы или используйте контекстный менеджер. Увидимся в следующем видео.