<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Модули, файлы и JSON on kodkod | Вводный курс</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/</link><description>Recent content in Модули, файлы и JSON on kodkod | Вводный курс</description><generator>Hugo</generator><language>ru</language><copyright>מבואות קודקוד</copyright><atom:link href="https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/index.xml" rel="self" type="application/rss+xml"/><item><title>Модули: зачем делить код на файлы, import, from и as</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/01-modules-and-import/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/01-modules-and-import/</guid><description>&lt;h2 id="что-мы-изучим"&gt;Что мы изучим?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Что такое &lt;strong&gt;модуль&lt;/strong&gt; (Module).&lt;/li&gt;
&lt;li&gt;Зачем проект делят на &lt;strong&gt;несколько файлов&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Три формы импорта: &lt;code&gt;import&lt;/code&gt;, &lt;code&gt;from ... import&lt;/code&gt;, &lt;code&gt;as&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Что &lt;strong&gt;именно&lt;/strong&gt; происходит, когда Python импортирует файл.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="зачем-это-нужно"&gt;Зачем это нужно?&lt;/h2&gt;
&lt;p&gt;Мы уже пользовались модулями: &lt;code&gt;import os&lt;/code&gt;, &lt;code&gt;import logging&lt;/code&gt;, &lt;code&gt;import socket&lt;/code&gt;. Сегодня напишем &lt;strong&gt;свои&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Пакеты, __init__.py и if __name__ == "__main__"</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/02-packages-and-main-guard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/02-packages-and-main-guard/</guid><description>&lt;h2 id="что-мы-изучим"&gt;Что мы изучим?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Пакет&lt;/strong&gt; (Package) — папку, содержащую модули.&lt;/li&gt;
&lt;li&gt;Файл &lt;strong&gt;&lt;code&gt;__init__.py&lt;/code&gt;&lt;/strong&gt; и его роль.&lt;/li&gt;
&lt;li&gt;Импорт изнутри пакета.&lt;/li&gt;
&lt;li&gt;Специальную переменную &lt;strong&gt;&lt;code&gt;__name__&lt;/code&gt;&lt;/strong&gt; и шаблон &lt;strong&gt;&lt;code&gt;if __name__ == &amp;quot;__main__&amp;quot;:&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="зачем-это-нужно"&gt;Зачем это нужно?&lt;/h2&gt;
&lt;p&gt;Когда модулей 3, они могут лежать в одной папке. Когда их 30, нужны &lt;strong&gt;папки&lt;/strong&gt;: всё, что связано с пользователями, — в одной, всё, что связано с платежами, — в другой. Так устроены все настоящие проекты, а также все библиотеки, которые вы будете устанавливать (FastAPI — огромный пакет с десятками подпакетов).&lt;/p&gt;</description></item><item><title>Работа с текстовыми файлами: open, with, чтение и запись</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/03-text-files-with/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/03-text-files-with/</guid><description>&lt;h2 id="что-мы-изучим"&gt;Что мы изучим?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Открытие файла&lt;/strong&gt; с помощью &lt;code&gt;open&lt;/code&gt; и &lt;strong&gt;режимы открытия&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Почему файл &lt;strong&gt;нужно закрывать&lt;/strong&gt; и как &lt;strong&gt;&lt;code&gt;with&lt;/code&gt;&lt;/strong&gt; делает это автоматически.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Чтение&lt;/strong&gt;: весь файл, строку за строкой.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Запись&lt;/strong&gt; и &lt;strong&gt;дописывание&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Надёжный&lt;/strong&gt; путь, который не зависит от того, откуда вы запускаете (мы обещали это в теме о компьютере, операционной системе и сети!).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="зачем-это-нужно"&gt;Зачем это нужно?&lt;/h2&gt;
&lt;p&gt;Тема о компьютере, операционной системе и сети: «всё, что в RAM, исчезает, когда программа завершается». Файлы — основной способ сохранить информацию на &lt;strong&gt;накопителе&lt;/strong&gt;: настройки, отчёты, историю, данные для импорта и экспорта. Счётчик, который всегда возвращался к 1 в &lt;code&gt;memory_test.py&lt;/code&gt;? Сегодня мы заставим его пережить перезапуски.&lt;/p&gt;</description></item><item><title>JSON: чтение, запись и сохранение данных</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/04-json/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/python-modules-files/04-json/</guid><description>&lt;h2 id="что-мы-изучим"&gt;Что мы изучим?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Что такое &lt;strong&gt;JSON&lt;/strong&gt; и как он выглядит.&lt;/li&gt;
&lt;li&gt;Как JSON соответствует &lt;strong&gt;dict&lt;/strong&gt; и &lt;strong&gt;list&lt;/strong&gt; в Python.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Сохранение&lt;/strong&gt; в файл и загрузку из него.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Преобразование&lt;/strong&gt; между строкой JSON и данными.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="зачем-это-нужно"&gt;Зачем это нужно?&lt;/h2&gt;
&lt;p&gt;В предыдущем уроке мы сохраняли текст и для этого придумали собственный «формат»: &lt;code&gt;Dana,90&lt;/code&gt; в каждой строке. А теперь допустим, что у каждого студента есть &lt;strong&gt;список&lt;/strong&gt; оценок, &lt;strong&gt;адрес&lt;/strong&gt; с городом и улицей и &lt;strong&gt;флаг&lt;/strong&gt; &lt;code&gt;is_active&lt;/code&gt;. Как сохранить это в строке текста? Каждый придумает свой формат, и придётся писать сложный код разбора.&lt;/p&gt;</description></item></channel></rss>