Файлы в Python – это информация, записанная и сохраненная в определенном формате. Такой документ будет иметь имя и храниться в долговременной памяти на устройстве.
Python поддерживает несколько форматов:
Текстовыми files in Python называются «привычные» пользователю документы. The file такого типа содержит обычный текст. В нем размещаются символы, которые легко считываются человеком. Обычно такие документы могут быть прочитаны при помощи любого текстового редактора: MS Word, Notepad++, «Блокнот» и так далее.
Бинарными документами являются файлы, которые включают в себя наборы нулей и единиц. В такой форме может быть представлена совершенно разная информация – от аудио до текста.
Далее предстоит изучить базовые операции с the file: read и write. Работу с документами в Питоне можно представить как открытие документа, корректировка данных, сохранение и закрытие. Обо всем этом зайдет речь в статье.
Как открыть файл
The file read – «базовая» операция. Она позволяет открыть и прочитать документ на устройстве. Упомянутый язык разработки поддерживает встроенную функцию open. С ее помощью удастся создать на основе любого языка файл объект the Python.
Здесь:
- name – имя документа, который нужно открыть;
- mode – режим открытия, который по умолчанию установлен на значении «только для чтения».
Таблица, представленная выше, поможет лучше разобраться с параметрами open для the file в Питоне read. Файловый объект будет иметь несколько атрибутов. Они предоставляют доступ к информации об исходном документе.
Далее open the file будет рассмотрен на наглядном примере. С его помощью пользователи смогут более быстро освоить основные приемы для работы с файлами в изучаемом языке.
Пример с open
Чтобы воспользоваться методом the open, потребуется сначала сформировать исходный документ. Пусть он будет текстовым – text.txt. В нем должен быть написан какой-нибудь текст. Исходный the file разместится в рабочей папке.
Код, представленный выше – это use file and read. В переменных file и file_2 будут сохраняться ссылки на объекты с открытыми документами.
А вот – пример просмотра содержимого и информацию о нем. Использовать код with open может каждый пользователь. Это один из способов отображения данных из документа в Питоне. Есть и другие способы вывода сведений на экран.
Закрытие документа
После того, как the file was read, он начинает потреблять определенные ресурсы устройства. Как только разработчик произведет необходимые изменения в документации, он должен закрыть файл. Для этого in the Python предусмотрен отдельный метод. Он называется close.
По умолчанию система сама закрывает the file после завершения работы с ним. Close помогает гарантированно закрыть компонент и высвободить память.
Менеджер контекста
Для взаимодействия между files могут быть использованы дополнительные инструменты. Рассматриваемый язык программирования поддерживает менеджер контекста. Он реализован в виде конструкции with. Используется для взаимодействия с file, который ранее был использован в программе.
Оператор with всегда закрывает file в конце работы. Это происходит даже тогда, когда программа завершилась некорректно. With выступает в качестве функции безопасности. Она полностью заменяет close.
Чтение и запись
File program read – операция, с которой рано или поздно столкнется каждый программист. В Питоне чтение несколько отличается от открытия (open). Далее будут изучены возможные методы реализации соответствующей операции. Дополнительно необходимо рассмотреть команду записи изменений в исходный файл.
Функция Read
Метод file.read будет считывать из файла не более size байтов или символов – в зависимости от режима, в котором открыть документ через open(). Если обнаружен end file до получения размера size, метод прочитает только доступные байты или символьные записи.
Если size (он не является обязательным для работы the file.read) не указан, функция будет пытаться прочитать как можно больше. Чаще – весь документ, если памяти на устройстве достаточно.
Выше можно увидеть синтаксическую форму the method read. Здесь:
- the file – это объект используемого файла;
- size – целочисленный параметр (int), количество байтов.
Возвращаемым значением будет строка в текстовом режиме или байтовый объект в двоичной форме отображения.
Иногда исходный документ слишком крупный для того, чтобы the file.read мог полноценно прочитать его. В данном случае рекомендуется пользоваться чтением «по частям» или «кусками».
Код, представленный выше, подойдет для небольших files. Он позволяет прочитать весь документ от начала до конца. Рекомендуется пользоваться им или в отношении небольших объектов, или на устройствах с большим объемом оперативной памяти.
А вот шаблон кода, позволяющий реализовать при помощи the file.read частичное чтение. Оно используется относительно крупных объектов или на устройствах с небольшой оперативной памятью.
Функция Readline
The file.read требует от пользователя наличия достаточных ресурсов для нормальной работы с документом. Если используется крупный исходный файл или клиенту не нужно выводить его полностью, можно задействовать еще один метод. Речь идет о функции readline.
За счет данного метода доступ к информации предоставляется построчно.
Иные методы
The file.read и readline – не единственные способы, помогающие читать документы через Python. Данную операцию можно осуществлять при помощи различные приемов. Пример – через циклы:
Соответствующий фрагмент использует «петлю» со счетчиком. Это – цикл for. С его помощью данные from the file удается прочитать частично.
Еще один вариант – это применение метода next:
Для частичного чтения может использоваться еще один вид цикла:
Представленный выше код использует while.
Запись
The read отвечает за чтение документа. Если нужно записать в него информацию, придется воспользоваться другим методом. В Python для этого используется функция write.
Если документа, доступ к которому запрошен, нет на устройстве, он будет автоматически создан по указанному разработчиком пути. Образец использования write можно увидеть выше. В данном случае the file не только открывается, но и корректируется. После завершения работы в предложенном фрагменте происходит закрытие исходного используемого файла.
Переименование
С основными действиями с документами в Python уже удалось познакомиться. Еще одной операцией, которая может пригодиться разработчику, является переименование файлов. Оно помогает вносить изменения в имя the file.
В the Python для изменения названия открытого документа применяется стандартная функция rename. Она входит в состав исходных библиотек языка Питон. Устанавливать дополнительные элементы для работы с соответствующей опцией нет никакой необходимости.
В качестве первого параметра указывается имя файла, подлежащего изменениям. Вторым аргументом служит новое «название». Пример применения соответствующей функции приведен выше.
Текущая позиция
С the read file в Питоне разобраться удалось. Также были рассмотрены ключевые функции для работы с текстовыми и бинарными документами. Существует еще одна команда, которая может пригодиться разработчику.
Встроенный метод seek помогает узнать текущую позицию в документе. С его помощью удастся переместить курсор в то или иное положение исходного файла. При повторном вызове read будет возвращаться пустая строка.
Seek может использоваться разработчиком для перехода в самое начало the file. Для этого необходимо в качестве его «параметра» указать 0:
Как только курсор будет переведен в начало файла при помощи seek, допускается новое считывание содержимого.
Интересует Python? Добро пожаловать на курс в Otus!
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>The Python: основы работы с файлами OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="Файлы в Python – это информация, записанная и сохраненная в определенном формате. Такой документ будет иметь имя и храниться в долговременной памяти на устройстве. Python поддерживает несколько форматов: бинарные; текстовые. Текстовыми files in Python называются «привычные» пользователю документы. The file такого типа содержит обычный текст. В нем размещаются символы, которые легко считываются человеком. Обычно такие" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/the-python-osnovy-raboty-s-fajlami/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#article","name":"The Python: \u043e\u0441\u043d\u043e\u0432\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 OTUS","headline":"The Python: \u043e\u0441\u043d\u043e\u0432\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/06\/oj-1080x72069-1.jpg","width":2245,"height":1587},"datePublished":"2023-06-07T21:21:05+00:00","dateModified":"2024-01-18T19:32:02+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, Python"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#listItem","position":2,"name":"The Python: \u043e\u0441\u043d\u043e\u0432\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#webpage","url":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/","name":"The Python: \u043e\u0441\u043d\u043e\u0432\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 OTUS","description":"\u0424\u0430\u0439\u043b\u044b \u0432 Python \u2013 \u044d\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u0430\u044f \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u0422\u0430\u043a\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0438\u043c\u044f \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u043e\u043b\u0433\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. Python \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432: \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435; \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435. \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 files in Python \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u00ab\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0435\u00bb \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b. The file \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442. \u0412 \u043d\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0433\u043a\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c. \u041e\u0431\u044b\u0447\u043d\u043e \u0442\u0430\u043a\u0438\u0435","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/06\/oj-1080x72069-1.jpg","@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#mainImage","width":2245,"height":1587},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/the-python-osnovy-raboty-s-fajlami\/#mainImage"},"datePublished":"2023-06-07T21:21:05+00:00","dateModified":"2024-01-18T19:32:02+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/6775" /><link rel='shortlink' href='https://otus.ru/journal/?p=6775' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fthe-python-osnovy-raboty-s-fajlami%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fthe-python-osnovy-raboty-s-fajlami%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-6775 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-6775" class="the-post post-6775 post type-post status-publish format-standard has-post-thumbnail category-polza tag-python">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
The Python: основы работы с файлами
</h1>
<a href="https://otus.ru/journal/the-python-osnovy-raboty-s-fajlami/" class="date-link" data-wpel-link="internal"><time class="post-date">7 июня, 2023</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72069-1.jpg" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="The Python: основы работы с файлами" title="The Python: основы работы с файлами" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72069-1-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72069-1-270x180.jpg 270w" data-src="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72069-1-770x515.jpg" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#%D0%9A%D0%B0%D0%BA_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C_%D1%84%D0%B0%D0%B9%D0%BB" title="Как открыть файл">Как открыть файл</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D1%81_open" title="Пример с open">Пример с open</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%97%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0" title="Закрытие документа">Закрытие документа</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9C%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0" title="Менеджер контекста">Менеджер контекста</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%A7%D1%82%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C" title="Чтение и запись">Чтение и запись</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_Read" title="Функция Read">Функция Read</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_Readline" title="Функция Readline">Функция Readline</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%98%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B" title="Иные методы">Иные методы</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C" title="Запись">Запись</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%9F%D0%B5%D1%80%D0%B5%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" title="Переименование">Переименование</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F" title="Текущая позиция">Текущая позиция</a></li></ul></nav></div>
<p><a href="https://otus.ru/journal/fajly-v-python/" data-wpel-link="internal">Файлы в Python</a> – это информация, записанная и сохраненная в определенном формате. Такой документ будет иметь имя и храниться в долговременной памяти на устройстве. </p>
<p>Python поддерживает несколько форматов:</p>
<ul>
<li>бинарные;</li>
<li>текстовые.</li>
</ul>
<p>Текстовыми files in Python называются «привычные» пользователю документы. The file такого типа содержит обычный текст. В нем размещаются символы, которые легко считываются человеком. Обычно такие документы могут быть прочитаны при помощи любого текстового редактора: MS Word, Notepad++, «Блокнот» и так далее.</p>
<p>Бинарными документами являются файлы, которые включают в себя наборы нулей и единиц. В такой форме может быть представлена совершенно разная информация – от аудио до текста.</p>
<p>Далее предстоит изучить базовые операции с the file: read и write. Работу с документами в Питоне можно представить как открытие документа, корректировка данных, сохранение и закрытие. Обо всем этом зайдет речь в статье.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%B0%D0%BA_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C_%D1%84%D0%B0%D0%B9%D0%BB"></span>Как открыть файл<span class="ez-toc-section-end"></span></h2>
<p>The file read – «базовая» операция. Она позволяет открыть и прочитать документ на устройстве. Упомянутый язык разработки поддерживает встроенную функцию open. С ее помощью удастся создать на основе любого языка файл объект the Python.</p>
<figure class="wp-block-image size-full"><img decoding="async" width="260" height="45" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-220.png" alt="The Python: основы работы с файлами" class="wp-image-6783" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-220.png 260w, https://otus.ru/journal/wp-content/uploads/2023/06/image-220-150x26.png 150w" sizes="(max-width: 260px) 100vw, 260px" /></figure>
<p>Здесь:</p>
<ul>
<li>name – имя документа, который нужно открыть;</li>
<li>mode – режим открытия, который по умолчанию установлен на значении «только для чтения».</li>
</ul>
<figure class="wp-block-image size-full"><img decoding="async" width="662" height="542" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-219.png" alt="The Python: основы работы с файлами" class="wp-image-6782" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-219.png 662w, https://otus.ru/journal/wp-content/uploads/2023/06/image-219-300x246.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-219-150x123.png 150w" sizes="(max-width: 662px) 100vw, 662px" /></figure>
<p>Таблица, представленная выше, поможет лучше разобраться с параметрами open для the file в Питоне read. Файловый объект будет иметь несколько атрибутов. Они предоставляют доступ к информации об исходном документе.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="640" height="164" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-213.png" alt="The Python: основы работы с файлами" class="wp-image-6776" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-213.png 640w, https://otus.ru/journal/wp-content/uploads/2023/06/image-213-300x77.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-213-150x38.png 150w" sizes="(max-width: 640px) 100vw, 640px" /></figure>
<p>Далее open the file будет рассмотрен на наглядном примере. С его помощью пользователи смогут более быстро освоить основные приемы для работы с файлами в изучаемом языке.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D1%81_open"></span>Пример с open<span class="ez-toc-section-end"></span></h3>
<p>Чтобы воспользоваться методом the open, потребуется сначала сформировать исходный документ. Пусть он будет текстовым – text.txt. В нем должен быть написан какой-нибудь текст. Исходный the file разместится в рабочей папке.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="569" height="41" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-218.png" alt="The Python: основы работы с файлами" class="wp-image-6781" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-218.png 569w, https://otus.ru/journal/wp-content/uploads/2023/06/image-218-300x22.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-218-150x11.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/image-218-554x41.png 554w" sizes="(max-width: 569px) 100vw, 569px" /></figure>
<p>Код, представленный выше – это use file and read. В переменных file и file_2 будут сохраняться ссылки на <a href="https://otus.ru/journal/rabota-s-klassami-v-programmirovanii-v-s/" data-wpel-link="internal">объекты с</a> открытыми документами.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="568" height="163" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-221.png" alt="The Python: основы работы с файлами" class="wp-image-6784" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-221.png 568w, https://otus.ru/journal/wp-content/uploads/2023/06/image-221-300x86.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-221-150x43.png 150w" sizes="(max-width: 568px) 100vw, 568px" /></figure>
<p>А вот – пример просмотра содержимого и информацию о нем. Использовать код with open может каждый пользователь. Это один из способов отображения данных из документа в Питоне. Есть и другие способы вывода сведений на экран.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%97%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0"></span>Закрытие документа<span class="ez-toc-section-end"></span></h2>
<p>После того, как the file was read, он начинает потреблять определенные ресурсы устройства. Как только разработчик произведет необходимые изменения в документации, он должен закрыть файл. Для этого in the Python предусмотрен отдельный метод. Он называется close.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="568" height="57" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-226.png" alt="The Python: основы работы с файлами" class="wp-image-6789" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-226.png 568w, https://otus.ru/journal/wp-content/uploads/2023/06/image-226-300x30.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-226-150x15.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/image-226-554x57.png 554w" sizes="(max-width: 568px) 100vw, 568px" /></figure>
<p>По умолчанию система сама закрывает the file после завершения работы с ним. Close помогает гарантированно закрыть компонент и высвободить память.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9C%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0"></span>Менеджер контекста<span class="ez-toc-section-end"></span></h2>
<p>Для взаимодействия между files могут быть использованы дополнительные инструменты. Рассматриваемый <a href="https://otus.ru/journal/yazyki-programmirovaniya-harakteristika-opisanie-vidy/" data-wpel-link="internal">язык программирования</a> поддерживает менеджер контекста. Он реализован в виде конструкции with. Используется для взаимодействия с file, который ранее был использован в программе.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="408" height="47" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-216.png" alt="The Python: основы работы с файлами" class="wp-image-6779" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-216.png 408w, https://otus.ru/journal/wp-content/uploads/2023/06/image-216-300x35.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-216-150x17.png 150w" sizes="(max-width: 408px) 100vw, 408px" /></figure>
<p>Оператор with всегда закрывает file в конце работы. Это происходит даже тогда, когда программа завершилась некорректно. With выступает в качестве функции безопасности. Она полностью заменяет close.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A7%D1%82%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C"></span>Чтение и запись<span class="ez-toc-section-end"></span></h2>
<p>File program read – операция, с которой рано или поздно столкнется каждый программист. В Питоне чтение несколько отличается от открытия (open). Далее будут изучены возможные методы реализации соответствующей операции. Дополнительно необходимо рассмотреть команду записи изменений в исходный файл.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_Read"></span>Функция Read<span class="ez-toc-section-end"></span></h3>
<p>Метод file.read будет считывать из файла не более size байтов или символов – в зависимости от режима, в котором открыть документ через open(). Если обнаружен end file до получения размера size, метод прочитает только доступные байты или символьные записи.</p>
<p>Если size (он не является обязательным для работы the file.read) не указан, функция будет пытаться прочитать как можно больше. Чаще – весь документ, если памяти на устройстве достаточно.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="174" height="28" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-215.png" alt="The Python: основы работы с файлами" class="wp-image-6778" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-215.png 174w, https://otus.ru/journal/wp-content/uploads/2023/06/image-215-150x24.png 150w" sizes="(max-width: 174px) 100vw, 174px" /></figure>
<p>Выше можно увидеть синтаксическую форму the method read. Здесь:</p>
<ul>
<li>the file – это объект используемого файла;</li>
<li>size – целочисленный параметр (<a href="https://otus.ru/journal/tipy-dannyh-i-int-v-programmirovanii/" data-wpel-link="internal">int</a>), количество байтов.</li>
</ul>
<p>Возвращаемым значением будет строка в текстовом режиме или байтовый объект в двоичной форме отображения. </p>
<p>Иногда исходный документ слишком крупный для того, чтобы the file.read мог полноценно прочитать его. В данном случае рекомендуется пользоваться чтением «по частям» или «кусками».</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="839" height="437" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-222.png" alt="The Python: основы работы с файлами" class="wp-image-6785" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-222.png 839w, https://otus.ru/journal/wp-content/uploads/2023/06/image-222-300x156.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-222-150x78.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/image-222-768x400.png 768w" sizes="(max-width: 839px) 100vw, 839px" /></figure>
<p>Код, представленный выше, подойдет для небольших files. Он позволяет прочитать весь документ от начала до конца. Рекомендуется пользоваться им или в отношении небольших объектов, или на устройствах с большим объемом оперативной памяти.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="512" height="361" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-227.png" alt="The Python: основы работы с файлами" class="wp-image-6790" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-227.png 512w, https://otus.ru/journal/wp-content/uploads/2023/06/image-227-300x212.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-227-150x106.png 150w" sizes="(max-width: 512px) 100vw, 512px" /></figure>
<p>А вот шаблон кода, позволяющий реализовать при помощи the file.read частичное чтение. Оно используется относительно крупных объектов или на устройствах с небольшой оперативной памятью.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_Readline"></span>Функция Readline<span class="ez-toc-section-end"></span></h3>
<p>The file.read требует от пользователя наличия достаточных ресурсов для нормальной работы с документом. Если используется крупный исходный файл или клиенту не нужно выводить его полностью, можно задействовать еще один метод. Речь идет о функции readline.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="512" height="249" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-223.png" alt="The Python: основы работы с файлами" class="wp-image-6786" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-223.png 512w, https://otus.ru/journal/wp-content/uploads/2023/06/image-223-300x146.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-223-150x73.png 150w" sizes="(max-width: 512px) 100vw, 512px" /></figure>
<p>За счет данного метода доступ к информации предоставляется построчно.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B"></span>Иные методы<span class="ez-toc-section-end"></span></h3>
<p>The file.read и readline – не единственные способы, помогающие читать документы через Python. Данную операцию можно осуществлять при помощи различные приемов. Пример – через циклы:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="456" height="248" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-217.png" alt="The Python: основы работы с файлами" class="wp-image-6780" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-217.png 456w, https://otus.ru/journal/wp-content/uploads/2023/06/image-217-300x163.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-217-150x82.png 150w" sizes="(max-width: 456px) 100vw, 456px" /></figure>
<p>Соответствующий фрагмент использует «петлю» со счетчиком. Это – цикл for. С его помощью данные from the file удается прочитать частично.</p>
<p>Еще один вариант – это применение метода next:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="470" height="361" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-229.png" alt="The Python: основы работы с файлами" class="wp-image-6792" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-229.png 470w, https://otus.ru/journal/wp-content/uploads/2023/06/image-229-300x230.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-229-150x115.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/image-229-260x200.png 260w, https://otus.ru/journal/wp-content/uploads/2023/06/image-229-87x67.png 87w" sizes="(max-width: 470px) 100vw, 470px" /></figure>
<p>Для частичного чтения может использоваться еще один вид цикла:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="459" height="330" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-230.png" alt="The Python: основы работы с файлами" class="wp-image-6793" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-230.png 459w, https://otus.ru/journal/wp-content/uploads/2023/06/image-230-300x216.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-230-150x108.png 150w" sizes="(max-width: 459px) 100vw, 459px" /></figure>
<p>Представленный выше код использует while.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C"></span>Запись<span class="ez-toc-section-end"></span></h3>
<p>The read отвечает за чтение документа. Если нужно записать в него информацию, придется воспользоваться другим методом. В Python для этого используется функция write.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="427" height="395" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-228.png" alt="The Python: основы работы с файлами" class="wp-image-6791" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-228.png 427w, https://otus.ru/journal/wp-content/uploads/2023/06/image-228-300x278.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-228-150x139.png 150w" sizes="(max-width: 427px) 100vw, 427px" /></figure>
<p>Если документа, доступ к которому запрошен, нет на устройстве, он будет автоматически создан по указанному разработчиком пути. Образец использования write можно увидеть выше. В данном случае the file не только открывается, но и корректируется. После завершения работы в предложенном фрагменте происходит закрытие исходного используемого файла.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%B5%D1%80%D0%B5%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5"></span>Переименование<span class="ez-toc-section-end"></span></h2>
<p>С основными действиями с документами в Python уже удалось познакомиться. Еще одной операцией, которая может пригодиться разработчику, является переименование файлов. Оно помогает вносить изменения в имя the file.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="453" height="252" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-225.png" alt="The Python: основы работы с файлами" class="wp-image-6788" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-225.png 453w, https://otus.ru/journal/wp-content/uploads/2023/06/image-225-300x167.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-225-150x83.png 150w" sizes="(max-width: 453px) 100vw, 453px" /></figure>
<p>В the Python для изменения названия открытого документа применяется стандартная функция rename. Она входит в состав исходных библиотек языка Питон. Устанавливать дополнительные элементы для работы с соответствующей опцией нет никакой необходимости.</p>
<p>В качестве первого параметра указывается имя файла, подлежащего изменениям. Вторым аргументом служит новое «название». Пример применения соответствующей функции приведен выше.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F"></span>Текущая позиция<span class="ez-toc-section-end"></span></h2>
<p>С the read file в Питоне разобраться удалось. Также были рассмотрены ключевые функции для работы с текстовыми и бинарными документами. Существует еще одна команда, которая может пригодиться разработчику.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="426" height="266" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-224.png" alt="The Python: основы работы с файлами" class="wp-image-6787" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-224.png 426w, https://otus.ru/journal/wp-content/uploads/2023/06/image-224-300x187.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-224-150x94.png 150w" sizes="(max-width: 426px) 100vw, 426px" /></figure>
<p>Встроенный метод seek помогает узнать текущую позицию в документе. С его помощью удастся переместить курсор в то или иное положение исходного файла. При повторном вызове read будет возвращаться пустая строка.</p>
<p>Seek может использоваться разработчиком для перехода в самое начало the file. Для этого необходимо в качестве его «параметра» указать 0:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="142" height="31" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-214.png" alt="The Python: основы работы с файлами" class="wp-image-6777"/></figure>
<p>Как только курсор будет переведен в начало файла при помощи seek, допускается новое считывание содержимого.</p>
<p>Интересует <a href="https://otus.ru/lessons/python-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=python" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Python<span class="wpel-icon wpel-image wpel-icon-6"></span></a>? Добро пожаловать на курс в Otus!</p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/python/" rel="tag" data-wpel-link="internal">Python</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fthe-python-osnovy-raboty-s-fajlami%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fthe-python-osnovy-raboty-s-fajlami%2F&text=The%20Python%3A%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20%D1%81%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fthe-python-osnovy-raboty-s-fajlami%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fthe-python-osnovy-raboty-s-fajlami%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2023%2F06%2Foj-1080x72069-1.jpg&description=The%20Python%3A%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20%D1%81%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/csv-i-python/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/csv-i-python/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="CSV и Python" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72068-1-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72068-1-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72068-1-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72068-1-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72068-1-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72068-1-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="CSV и Python" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/csv-i-python/" data-wpel-link="internal">CSV и Python</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/csv-i-python/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2023-06-07T21:13:18+00:00">7 июня, 2023</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">11 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/slovari-i-ih-perebor-v-python/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/slovari-i-ih-perebor-v-python/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Словари и их перебор в Python" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72070-1-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72070-1-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72070-1-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72070-1-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72070-1-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72070-1-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="Словари и их перебор в Python" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/slovari-i-ih-perebor-v-python/" data-wpel-link="internal">Словари и их перебор в Python</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/slovari-i-ih-perebor-v-python/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2023-06-07T21:28:43+00:00">7 июня, 2023</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">8 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/the-python-osnovy-raboty-s-fajlami\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Mon, 09 Mar 2026 14:54:23 GMT -->