[МУЗЫКА] Здравствуйте. Мы начинаем тему «Текстовые файлы и таблицы». Начнем мы с вводной информации о работе с файлами, обсудим, зачем использовать файлы, поговорим про кодировку, про то, с какими файлами будем работать, и общую информацию о чтении из файла и записи в файл тоже проговорим. Зачем же использовать файлы? Представим себе, что у нас какие-то данные лежат в файле, и мы хотим использовать их в программе. Что мы можем сделать? Мы можем просто скопировать данные из файла в программу и присвоить каким-то переменным скопированные значения. Но может быть, что файл очень большой и копировать неудобно. Да даже если файл маленький, тоже вручную копировать может быть неудобно. Есть решение — считывать данные из файла прямо в коде программы. Мы узнаем, как это делается. Допустим, мы как-то смогли считать данные из файла. Получили какие-то результаты и хотим эти результаты сохранить. Как их сохранить? Копировать и сохранять вручную в отдельный файл? Ну, это как-то не очень удобно, особенно если данных много. Снова есть решение — не только считывать данные из файла автоматически в коде программы, но и сохранять их в файл тоже в ходе программы. Как именно это делать, мы скоро узнаем. Но, прежде, нужно обсудить еще вопросы кодировки. Что такое кодировка? Текст сохраняется в памяти компьютера не в виде того текста, который мы видим, а в виде некоторого кода, то есть каждому символу, который видим мы с вами, соответствует какой-то кодовый номер, который видит компьютер, который хранит компьютер у себя в памяти. И когда мы сохранили, все символы перешли в код. А когда мы хотим файл снова открыть, опять в обратную уже сторону все кодовые номера превращаются в символы. Так работает кодировка. Наверняка вы видели вот такие файлы, где вместо нормального текста какие-то странные символы. Почему это произошло? Почему такое может быть? Потому что файл пытаются открыть не в той кодировке, в которой его сохранили. То есть коду соответствуют теперь другие символы, и видите не то, что вы хотели бы видеть. Мы с вами будем работать с файлами, сохраненными в кодировке UTF-8. С какими вообще файлами мы будем работать? Пока мы знаем про них только кодировку. Теперь мы узнаем, что мы будем работать, во-первых, с текстовыми файлами — файлами с расширением .txt (или «ти экс ти»). Я буду говорить txt. Такие файлы используются для хранения неструктурированных данных, попросту говоря, текстов. Кроме того, мы будем работать с файлами с расширением .csv, или говорят иногда «цэ эс вэ». Как это расшифровывается? Comma-Separated Values, то есть значения, разделенные запятой. Какие именно значения? А такие файлы используются для хранения табличных данных, то есть данных, которые можно обычно увидеть в таблицах. Но, чтобы сохранить их себе в другом виде, в более сжатом, в более емком, используют запятые, например, в качестве разделителя между столбцами. Посмотрите, фамилия и год рождения стоят в разных столбцах. И мы так это увидим, если откроем csv-файл в редакторе таблиц. А если csv-файл мы откроем в текстовом редакторе, то увидим, что между фамилией и годом рождения будет стоять запятая или на самом деле какой-то, может быть, и другой символ. Чаще это запятая или точка с запятой, но может быть, в принципе, все что угодно — любой символ, который выбран был в качестве разделителя данных. А лучше, чтобы проблем со считыванием файла не было, в конце файла ставить перенос строки, чтобы последняя строчка была пустой. Так мы избежим ошибок при чтении файла, а программа наша будет видеть, что все — файл завершен, когда в конце стоит пустая строка. Обсудим общую информацию о чтении из файла и записи в файл. Как бы мы с вами сами пытались бы считать из файла, если бы мы хотели просто вручную скопировать и вставить данные в код программы? Мы бы сначала нашли бы файл на компьютере, потом его бы открыли, взяли бы, скопировали из него все, что нужно, и потом передали это программе и закрыли бы файл. Точно так же будет действовать программа, но, чтобы она смогла найти файл на компьютере, мы положим этот файл в ту же самую папку, в которой лежит файл с кодом программы, чтобы программа знала где искать этот файл — прямо рядом с собой. В принципе, это не обязательно. Можно было бы положить в другое место. Тогда нужно было бы прописывать путь к файлу. Мы на этом не останавливаемся. Мы это использовать не будем. Мы просто будем класть файл в ту же папку, где лежит код программы. А как бы мы с вами вручную записывали бы в файл? Мы бы искали файл на компьютере, в который мы хотим записать что-то. Если бы такого файла не было, мы бы хотели создать новый, мы бы создали новый файл с выбранным именем, открыли бы его, положили туда все, что нужно, скопировали бы все значения, закрыли бы файл. И все. Перед закрытием, конечно, сохранили бы. Точно так же будет делать программа. Если она не найдет файл с нужным именем, она создаст новый файл с таким именем. И в конце после сохранения очень важно закрыть файл. Это самый важный момент при работе автоматической с файлами, чтобы не потерять данные. Итого, что нужно указать программе? Название файла, можно было бы еще указать, где его искать, прописывая путь к файлу, но мы этого не делаем. Мы кладем файл в ту же папку, где лежит код программы. После этого режим открытия файла, то есть хотим мы считать данные из файла или, наоборот, сохранить какие-то результаты в файл, и кодировку файла. Сейчас попробуем на практике проделать все указанные шаги. [МУЗЫКА]