Step 1 (S-100225)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/24465/step/1

Step 1 (S-100225) 1.png

[00:00 - 00:19] так и будет являться файлы работа с файловой системой прежде чем мы начнем стоит напомнить что мы вообще рассматриваем 2 типа 1 тип файлов мы называем текст мы считаем что содержимое данных файлов является текстом может быть интерпретировано в качестве текста в противовес им мы имеем бинарные или двоичные файлы


[00:19 - 00:38] содержимое которых мы не можем интерпретировать в качестве текста примером текстовых файлов прежде всего может послужить исходный код ваших программ а фарматекс стая и допустимости моя страница оригинального файла можно здесь почти все остальное что мы за текст не считаем например mp 3 формат картинки и гифки все что душе угодно


[00:38 - 00:55] в рамках данного урока не буду много рассказывать поработать на я считаю что либо более или менее популярного формата бинарных данных будто например изображение или музыкальные данные уже точностью что библиотеке языка python который умеет с файлами данных форматов работать например если вы хотите работать с изображениями


[00:55 - 01:11] вы можете использовать я купил а если вы хотите работает с музыкальными данными то можешь начать с встроенными для таки wave закончить например python аудио tools а вот с текстовыми файлами приходится работать постоянно и поэтому им в течение нашего курса работать но куда больше внимания


[01:11 - 01:28] давайте сами разберемся учимся открывать файлы и что нибудь не учитывать прежде всего убедитесь в том что вы создали какой нибудь текстовый файл в нашей рабочей директории он слышит текстовый файл называется доставка текста для того чтобы открыть файл используя инструкцию often


[01:28 - 01:46] который 1 аргументом перес имя файла это ключи с которыми вы должны открыть данный файл нашем случае р то есть я говорю что я хочу открыть вам чтения таким образом функциональным 1 2 аргументами принимать имя файла который мы хотим открыть и режим в котором мы хотим в открыть


Step 1 (S-100225) 2.png

[01:46 - 02:02] писал для чтения для записи для записи в конец и даже если сильно хочется то можно 3 в бинарном формате таким образом режим определяет намерения с которым мы открываем данный файл если мы хотим из файла с читать думают кроме того для чтения с этим него что то записать то открой модуля записи


[02:02 - 02:18] здесь прям краткий список режимов которые мы можем открыть файл и 1 р r это то есть файл для чтения что он является режимом по умолчанию то есть когда мы фоточтение мы можем не указывать 2 аргумент конечно же есть режим


[02:18 - 02:36] для записи режем double в важно помнить что он стирает содержимое файлов когда файл открывается у нас есть режим для до записи то есть когда мы сохраняем содержимое файла либо записываем что либо в конец этой режим а режим б слово баня и то есть мы открываем


[02:36 - 02:51] формат бинарном режиме и что важно сочетать данные режима то есть мы можем указать рб для того чтобы открыть файл в режиме чтения в бинарном формате я привел не все режимы в которых мы можем открыть файл однако чаще всего не хватает всего лишь тех


[02:51 - 03:10] в а р мы открываем файл для чтения через вам открывал для записи и через а мы открываем файл для того чтобы записать что нибудь в конец функции он завещает нам файл options блефа logical можем читает данные записывать данные что самое главное в лоджик нужно закрывать когда вы с файлом поработали


[03:10 - 03:25] потому что нужно освобождать и системные ресурсы которые были затрачены на то чтобы поддерживать соединение с файлом так что давайте пока провести закрытия файла вот сюда а на самом деле мы пойдем посмотрим что же содержится в файле тест точка текста


[03:25 - 03:40] сердце 3 строки и каждый содержится в названии этой строке то есть номер то 1 строка 2 строка 3 строка ну давайте попробуем считать что нибудь с нашего файла прежде всего конечно же это творится давайте запишем а


[03:40 - 03:57] какую нибудь переменную икс значения free to допустим 1 5 символов то есть мы признаем число символов которым хотим считать из нашел файл можно распечатать на экраны икс убийца в том что пока что это действительно вот 1 5 символов то есть наша строка first


[03:57 - 04:16] если же нет никакого аргумента в наш метод 3 кто мы считаем наш файл до конца давайте запомним значение метода free to и наш кот у меня в том что сначала мы насчитали наша 5/1 символов first о чем начиная с пробела


[04:16 - 04:33] до конца и вывели его на экран таким образом если вас просто интересует всего содержимого вашего файла то можете просто не стесняться а запускать fried выводить на экран убийцы мечтать файла и мечтатели файлов однако важно помнить что


Step 1 (S-100225) 3.png

[04:33 - 04:50] символ переноса строки так является символом языке python и давайте для этого мы видим на экране просто икс а представления икс в качестве строки увидимся в том что у меня запущенная операционной системы ubuntu то у меня переноса строки являются символом слэш


Step 1 (S-100225) 4.png

[04:50 - 05:06] представления текста информации в качестве строки стажем и базу поэтому мы не хотели сильно страдать от того что в 1 операционной системе бунтов для переноса строки используется как слэш а в другой операционной системы windows сводятся другая последовательность символов


[05:06 - 05:23] для того чтобы мы могли разбить любой текст по срокам вне зависимости от того какой операционной системы пользуемся языке python есть метод сплит lines сплела из является методом строки то есть вот для слизней строки которому сеть с помощью это дарить тебе свою икс у тебя икс split lines


[05:23 - 05:40] и запустил данный факт что мы успешно смогли разбить наш текст на 3 строки которые ты сосешь славим second life line и дает мне не содержит символов перенос строки однако может случиться так что наш текстовый файл занимает слишком много места в нашем диске


[05:40 - 05:55] этом если мы будем использовать при том что много места в оперативной памяти когда мы вас читаем поэтому имеет смысл засчитывать даже файла построчно для того чтобы сделать файл построчно можно использовать метод ряду которого есть собственность учитывает


[05:55 - 06:13] строку можешь взять этот важный таким образом видится в том что мы сильно отстали 2 строки однако мы тоже учитываем символом переноса строки не то чтобы брать символ переноса строки воспользоваться методом рассмотреть р скорей подбирает справа


[06:13 - 06:31] все ведущие пробельные символы в том числе символ переноса строки то есть если мы допустим мы убедимся в том что вместе мы избавились от символа переноса строки запись можно сократить просто применив и сразу к вызову метода редлайн и получить то что не хотели


[06:31 - 06:50] однако более экономичным способом перебор строк внутри файлов является конечно же итерация по факту обжиг то дело в том что в и лоджик то есть итераторы и данной итератор когда что я запрашиваю следующий элемент будет возвращать нам строку из файла это вчера там написано эффективно по памяти то есть он никогда не выгружает файлов в память целиком


[06:50 - 07:08] пока не встретят следующий перенос строки ну давайте перепишем считывание нашего файла 1 приобрел нашел проводочек то видим строковое представление нашей строки на экран когда мы увидим данный код над ним все в том что строки считываются также с


Step 1 (S-100225) 5.png

[07:08 - 07:26] ведущим символом переноса строки поэтому внутри формы можно использовать наш трюк с методом расстановок и тем самым убрать ведущий перенос строки важно понимать что когда файле больше не осталось ни считаю информация то место где тебя есть зрителям пустую строку


[07:26 - 07:43] взять к тому же вы пытались сказать все то есть такие давайте запомним в именно их значение метода ф от рейд 0 затем выведем также на экран строковое представление нашей строки икс увидимся в том что позовут мы это читали уже все таки строки наш вызов


Step 1 (S-100225) 6.png

[07:43 - 07:58] пустую строку таким образом считывание из файлов языке поэтому странах злачно просто если вы знаете сколько ровно символов вы хотите считать вы можете использовать метод рейд и передать него аргументов число символов которое вы хотите считать


[07:58 - 08:10] если вы хотите дать файл целиком вы можете просто использовать метод этот не передавать него никакие аргументы если фаза очень большой и выходить из считывать построчно то можете просто использовать цикл for и файл отжиг