{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "s_KlstLQYjjc" }, "source": [ "# Работа с файлами" ] }, { "cell_type": "markdown", "metadata": { "id": "-BVP613H9aNq" }, "source": [ "Создадим первый файл с помощью команды open.\n", "\n", "Функция open() принимает два обязательных аргумента:\n", "\n", "file: Этот аргумент указывает на имя файла, который вы хотите открыть. Обычно является строкой, но могут быть и другие варианты, мы их сейчас не рассматриваем.\n", "\n", "mode: Этот аргумент указывает режим, в котором вы хотите открыть файл. Может быть одним из следующих режимов:\n", "\n", "- 'r' (по умолчанию): Открывает файл в режиме чтения. Если файл не существует, возникнет исключение FileNotFoundError.\n", "- 'w': Открывает файл в режиме записи. Если файл уже существует, он будет перезаписан.\n", "- 'a': Открывает файл в режиме добавления. Если файл уже существует, все записи будут добавлены в конец файла. Если файл не существует, он будет создан.\n", "- 'x': Открывает файл в режиме создания. Если файл уже существует, возникнет исключение FileExistsError. Этот режим полезен для того, чтобы убедиться, что файл не существует до того, как вы начнете записывать в него.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "azLY9st5XHUp" }, "outputs": [], "source": [ "# Открываем файл в режиме записи ('w' означает write)\n", "f = open('test.txt', 'w')\n", "# Записываем строку в файл\n", "f.write('Hello, World!')\n", "# Закрываем файл\n", "f.close()\n" ] }, { "cell_type": "markdown", "metadata": { "id": "akKT5NOxXica" }, "source": [ "Давайте запишем несколько строк в файл. В режиме w старое содержимое файла файла стирается, поэтому будьте внимательны, когда работаете в нем с файлами." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "IGH1xxvnYc-e" }, "outputs": [], "source": [ "f = open('first.txt', 'w')\n", "f.write('Запись многострочного файла \\n')\n", "f.write('Еще информация')\n", "f.close()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "id": "ZEdZe1OPasxh" }, "outputs": [], "source": [ "f = open('third.txt', 'w')\n", "for i in range(1040, 1200):\n", " f.write(chr(i))\n", " f.write('\\n')\n", "f.close()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "f = open('third.txt', 'w', encoding=\"utf-8\")\n", "for i in range(1040, 1200):\n", " f.write(chr(i))\n", " f.write('\\n')\n", "f.close()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "f = open('third.txt', 'w')\n", "for i in range(104, 120):\n", " f.write(chr(i))\n", " f.write('\\n')\n", "f.close()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "URBHuuq8bqw6", "outputId": "59585820-eac4-405d-f7e0-e7c4dc7f2422" }, "outputs": [ { "data": { "text/plain": [ "1103" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ord('я')" ] }, { "cell_type": "markdown", "metadata": { "id": "8y6_U0Kab56I" }, "source": [ "Чтение текста из файла" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "oV8tOiJWel9e", "outputId": "0096bf80-c3df-416e-f906-9372c2da86b8" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello, World!\n" ] } ], "source": [ "# Открываем файл в режиме чтения\n", "f = open('test.txt', 'r')\n", "# Читаем содержимое файла в переменную\n", "contents = f.read()\n", "# Закрываем файл\n", "f.close()\n", "# Выводим содержимое файла\n", "print(contents)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Db9Kl7t9fTQe", "outputId": "55ed511b-e0ba-498b-ed28-ec5174405f20" }, "outputs": [], "source": [ "# Открываем файл в режиме чтения\n", "f = open('first.txt', 'r')\n", "# Проходимся по строкам файла\n", "for line in f:\n", " # Выводим строку\n", " print(line)\n", "# Закрываем файл\n", "f.close()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7c8XWPNNcD2K", "outputId": "d66ac0c8-ec1c-49ca-ba43-a2fe989abfba" }, "outputs": [], "source": [ "file1 = open('first.txt')\n", "print(file1.read(5))\n", "file1.close()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "h__8gRyJclIc", "outputId": "01796adb-5f19-4aeb-cfb3-624cb7acc248" }, "outputs": [], "source": [ "file1 = open('first.txt')\n", "print(file1.readline())\n", "file1.close()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "IC9no6cicxho", "outputId": "ed5170fc-708f-40e6-f9e8-866c42b83bbe" }, "outputs": [], "source": [ "with open('third.txt') as f:\n", " p = f.read()\n", "print(p)" ] }, { "cell_type": "markdown", "metadata": { "id": "eJIuZ5OflJev" }, "source": [ "### Задание\n", "Напишите код, который читает текст из одного файла, делит его на три части и сохраняет в разных файлах. Пусть разделителем, по которому мы будем считать две пустые строки (два переноса \\n\\n).\n", "\n", "[Файл](https://drive.google.com/file/d/1oMDZku6qWuLdqu7Az5LQGn0JDWuQvzQW/view?usp=share_link)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "id": "lhPoz1LOlG9L" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['Солнечный день был самым теплым за все лето. Люди наполняли парки и пляжи, наслаждаясь солнцем и водой. На берегу моря дети строили замки из песка, а возле реки парусинки плыли по течению.', 'В центре города на главной площади разворачивался ярмарка. Там продавались свежие фрукты и овощи, ароматные сыры и выпечка. Музыканты играли на улице, а на сцене выступали танцоры.', 'Вечером на небе зажглись звезды, а над городом развернулся фейерверк. Люди собрались на балконах и на улицах, чтобы увидеть шоу света и цвета. Этот день был незабываемым и радостным для всех']\n" ] } ], "source": [ "with open('input.txt', encoding=\"utf-8\") as f:\n", " text = f.read()\n", "# разбиваем текст в список\n", "text_list = text.split(\"\\n\\n\")\n", "print(text_list)\n", "\n", "# записываем первый файл\n", "f = open('output_1.txt', 'w')\n", "f.write(text_list[0])\n", "\n", "# второй\n", "f = open('output_2.txt', 'w')\n", "f.write(text_list[1])\n", "\n", "# третий\n", "f = open('output_3.txt', 'w')\n", "f.write(text_list[2])\n", "# fcl" ] }, { "cell_type": "markdown", "metadata": { "id": "Ds7BSORwlc6U" }, "source": [ "Можно создавать не только txt-файлы, но и другие, например py-файлы, а затем использовать их как модули." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "G2nOg8hlfE3R" }, "outputs": [], "source": [ "with open('py.py', 'w') as text:\n", " text.write('x = \"Привет, мир!\"')\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "wZzDIhFwfU_y", "outputId": "a1980bd1-2067-496d-bfb6-b0e9326bcc3f" }, "outputs": [], "source": [ "import py\n", "print(py.x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "HHEV8LKsfmnR", "outputId": "23363a87-d171-43db-915d-3298519d2f83" }, "outputs": [], "source": [ "%%writefile new.txt\n", "Здравствуйте!" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "PiNZRnIXreDe" }, "outputs": [], "source": [] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3.9.6 64-bit", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.6" }, "vscode": { "interpreter": { "hash": "81794d4967e6c3204c66dcd87b604927b115b27c00565d3d43f05ba2f3a2cb0d" } } }, "nbformat": 4, "nbformat_minor": 0 }