From 833978c2a6e3b0393bb3a169ee387a030b2018fd Mon Sep 17 00:00:00 2001 From: Ksenia Date: Sat, 4 Oct 2025 18:24:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BE=D1=82=D1=87=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA6/Stroka.txt | 1 + TEMA6/photo1.png | Bin 0 -> 11764 bytes TEMA6/photo2.png | Bin 0 -> 8995 bytes TEMA6/photo3.png | Bin 0 -> 19299 bytes TEMA6/protocol6.py | 183 ++++++++++++++ TEMA6/zapfile3.txt | 0 TEMA6/zapis1.txt | 0 TEMA6/zapis2.bin | 1 + TEMA6/zapis3.txt | 3 + TEMA6/zapis4.txt | 1 + TEMA6/zapis5.txt | 3 + TEMA6/zapis6.mnz | Bin 0 -> 46 bytes TEMA6/zapis7.2ob | Bin 0 -> 139 bytes TEMA6/Отчет6.md | 550 +++++++++++++++++++++++++++++++++++++++++++ 14 files changed, 742 insertions(+) create mode 100644 TEMA6/Stroka.txt create mode 100644 TEMA6/photo1.png create mode 100644 TEMA6/photo2.png create mode 100644 TEMA6/photo3.png create mode 100644 TEMA6/protocol6.py create mode 100644 TEMA6/zapfile3.txt create mode 100644 TEMA6/zapis1.txt create mode 100644 TEMA6/zapis2.bin create mode 100644 TEMA6/zapis3.txt create mode 100644 TEMA6/zapis4.txt create mode 100644 TEMA6/zapis5.txt create mode 100644 TEMA6/zapis6.mnz create mode 100644 TEMA6/zapis7.2ob create mode 100644 TEMA6/Отчет6.md diff --git a/TEMA6/Stroka.txt b/TEMA6/Stroka.txt new file mode 100644 index 0000000..48d3f7e --- /dev/null +++ b/TEMA6/Stroka.txt @@ -0,0 +1 @@ + diff --git a/TEMA6/photo1.png b/TEMA6/photo1.png new file mode 100644 index 0000000000000000000000000000000000000000..0aafba0deda095436d03416be7c1012763453ce6 GIT binary patch literal 11764 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 literal 0 HcmV?d00001 diff --git a/TEMA6/photo2.png b/TEMA6/photo2.png new file mode 100644 index 0000000000000000000000000000000000000000..367b2f472badb527b42c45af78c1c03b2616835d GIT binary patch literal 8995 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 ZDpBtit^`bF)U}B$+j9RB$XmT!_zy&)Ofvug literal 0 HcmV?d00001 diff --git a/TEMA6/photo3.png b/TEMA6/photo3.png new file mode 100644 index 0000000000000000000000000000000000000000..a076493df159281145efa2639e57f34c0f8369a7 GIT binary patch literal 19299 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 literal 0 HcmV?d00001 diff --git a/TEMA6/protocol6.py b/TEMA6/protocol6.py new file mode 100644 index 0000000..bb0b6f9 --- /dev/null +++ b/TEMA6/protocol6.py @@ -0,0 +1,183 @@ +# ТЕМА 6 "Зеленкина Ксения Михайловна" + +## 2.2. +fff=234.5;gg='Значение температуры = ' +print(gg, fff) +print(gg, fff, sep="/") +print(gg, fff,sep='/',end='***'); print('____') + +print(""" Здесь может выводиться +большой текст, +занимающий несколько строк""") + +print("Здесь может выводиться", + "большой текст,", + "занимающий несколько строк") + +## 2.3. +import sys +sys.stdout.write('Функция write') +sys.stdout.write('Функция write\n') + +# 3. +#psw=input('Введите пароль:') +#print(type(psw)) + +# Пример 1 +#while True: +# znach=float(input('Задайте коэф.усиления = ')) +# if znach<17.5 or znach>23.8: +# print('Ошибка!') +# else: +# break + +#Пример 2 +#import math +#print(eval(input('введите выражение для расчета = '))) + +## 4.1. +import os +ZelenkinaKs = os.getcwd() +print(ZelenkinaKs) +os.chdir('C:\\Users\\user\\OneDrive\\Documents\\ZelenkinaKs\\python-labs\\TEMA5') +print(os.getcwd()) +os.chdir('C:\\Users\\user\\OneDrive\\Documents\\ZelenkinaKs\\python-labs\\TEMA6') + +import os +from os.path import isdir +# Создание папки +os.mkdir("test_folder") +# Проверка существования папки +print(isdir("test_folder")) +# Просмотр содержимого текущей директории +print(os.listdir()) +# Просмотр содержимого конкретной папки +print(os.listdir("test_folder")) +# Удаление папки (должна быть пустой) +os.rmdir("test_folder") +# Проверка после удаления +print(isdir("test_folder")) + +fil=os.path.abspath("Отчет6.md") +print(fil) +drkt=os.path.dirname(fil) +print(drkt) +nameFile = os.path.basename(fil) +print(nameFile) +SplitFile = os.path.split(fil) +print(SplitFile) +print(os.path.exists("\\python-labs\\TEMA6")) +print(os.path.exists("C:\\Users\\user\\")) +print(os.path.exists("Отчет6.md")) +print(os.path.exists(".")) + +exists = os.path.isfile("C:\\Users\\user\\OneDrive\\Documents\\ZelenkinaKs\\python-labs\\TEMA6\\Отчет6.md") +print(exists) + +fp=open(file=drkt+'\\zapis1.txt',mode='w') +print(type(fp)) +fp.close() + +sps=list(range(1,13)) +fp2=open('zapis3.txt','w') +fp2.write(str(sps[:4])+'\n') +fp2.write(str(sps[4:8])+'\n') +fp2.write(str(sps[8:])+'\n') +fp2.close() + +sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]] +fp3=open('zapis4.txt','w') +for i in range(len(sps3)): + stroka4=sps3[i][0]+' '+str(sps3[i][1]) + fp3.write(stroka4) +fp3.close() + +gh = open('zapis5.txt', 'w') +for r in sps3: gh.write(r[0]+' '+str(r[1])+'\n') +gh.close() + +sps1=[] +fp=open('zapis3.txt') +for stroka in fp: + stroka=stroka.rstrip('\n') + stroka=stroka.replace('[','') + stroka=stroka.replace(']','') + sps1=sps1+stroka.split(',') +fp.close() +print(sps1) + +sps1 = [] +fp = open('zapis3.txt') +for stroka in fp: + stroka = stroka.rstrip('\n') + stroka = stroka.replace('[','') + stroka = stroka.replace(']','') + chisla_str = stroka.split(',') + chisla = [int(x) for x in chisla_str if x] + sps1.append(chisla) +fp.close() +for podspisok in sps1: + print(f"[{', '.join(map(str, podspisok))}]") + +fp=open('zapis3.txt') +stroka1=fp.read(12) +stroka2=fp.read() +fp.close() +print(stroka1) +print(stroka2) + +fp=open('zapis3.txt') +stroka3=fp.readline(5) +stroka4=fp.readlines() +print(stroka3) +print(stroka4) + +## 4.9. +import pickle +mnoz1={'pen','book','pen','iPhone','table','book'} #Объект типа «множество» +fp=open('zapis6.mnz','wb') # Бинарный файл – на запись +pickle.dump(mnoz1,fp) #dump – метод записи объекта в файл +fp.close() + +fp=open('zapis6.mnz','rb') +mnoz2=pickle.load(fp) #load – метод чтения объекта из бинарного файла +fp.close() +print(mnoz2) +print(mnoz1) + +fp = open('zapis7.2ob', 'wb') +pickle.dump(mnoz1, fp) +pickle.dump(sps3, fp) +fp.close() +fp = open('zapis7.2ob', 'rb') +obj1 = pickle.load(fp) # Первое обращение к load читает первый объект +obj2 = pickle.load(fp) # Второе – читает второй +fp.close() +print(obj1) +print(mnoz1) +print(obj2) +print(sps3) + +## 5. +import sys +vr_out=sys.stdout #Запоминаем текущий поток вывода +fc=open('Stroka.txt','w') #Откроем файл вывода +sys.stdout=fc #Перенацеливаем стандартный поток вывода на файл +print('запись строки в файл') #Вывод теперь будет не на экран, а в файл +sys.stdout=vr_out #Восстановление текущего потока +print('запись строки на экран') #Убеждаемся, что вывод на экран восстановился +fc.close() + +import sys +tmp_in = sys.stdin #Запоминаем текущий поток ввода +fd = open("Stroka.txt", "r") #Открываем файл для ввода (чтения) +sys.stdin = fd #Перенацеливаем ввод на файл вместо клавиатуры +print(sys.stdin) +while True: + try: + line = input () #Считываем из файла строку + print(line) # Отображаем считанное + except EOFError: + break +fd.close() +sys.stdin=tmp_in #Не забыть вернуть стандартное назначение для потока ввода diff --git a/TEMA6/zapfile3.txt b/TEMA6/zapfile3.txt new file mode 100644 index 0000000..e69de29 diff --git a/TEMA6/zapis1.txt b/TEMA6/zapis1.txt new file mode 100644 index 0000000..e69de29 diff --git a/TEMA6/zapis2.bin b/TEMA6/zapis2.bin new file mode 100644 index 0000000..03d742b --- /dev/null +++ b/TEMA6/zapis2.bin @@ -0,0 +1 @@ +Тут какое то значение \ No newline at end of file diff --git a/TEMA6/zapis3.txt b/TEMA6/zapis3.txt new file mode 100644 index 0000000..8132aa8 --- /dev/null +++ b/TEMA6/zapis3.txt @@ -0,0 +1,3 @@ +[1, 2, 3, 4] +[5, 6, 7, 8] +[9, 10, 11, 12] diff --git a/TEMA6/zapis4.txt b/TEMA6/zapis4.txt new file mode 100644 index 0000000..edd0c45 --- /dev/null +++ b/TEMA6/zapis4.txt @@ -0,0 +1 @@ + . 1 . 2 . 3 \ No newline at end of file diff --git a/TEMA6/zapis5.txt b/TEMA6/zapis5.txt new file mode 100644 index 0000000..ecde2d7 --- /dev/null +++ b/TEMA6/zapis5.txt @@ -0,0 +1,3 @@ + . 1 + . 2 + . 3 diff --git a/TEMA6/zapis6.mnz b/TEMA6/zapis6.mnz new file mode 100644 index 0000000000000000000000000000000000000000..68f33e027b28e52a525f5fc5bc1cf8194e46b374 GIT binary patch literal 46 xcmZo*nX1eH0sT`nde|}pGV=3Mr}Quvq~=ZOVM)r*&z{o5T9TNQlR9OB9sn^e4>14$ literal 0 HcmV?d00001 diff --git a/TEMA6/zapis7.2ob b/TEMA6/zapis7.2ob new file mode 100644 index 0000000000000000000000000000000000000000..e4469948a890c6fb5a168621f30f0c0d3e760c0c GIT binary patch literal 139 zcmZo*nX1eH0sT`nde|}pGV=3Mr}Quvq~=ZOVM)r*&z{o5T9TNQlR9OBUIWY2AgJot zDH=f3BXD8Hg-sVWT-bYI--S&I7iQ>9@n%egNX);m^Q63p*}s Qxv&o=wGb%9oSLc!0ApA@hyVZp literal 0 HcmV?d00001 diff --git a/TEMA6/Отчет6.md b/TEMA6/Отчет6.md new file mode 100644 index 0000000..59436f4 --- /dev/null +++ b/TEMA6/Отчет6.md @@ -0,0 +1,550 @@ +# Отчет по Теме 6 + +Зеленкина Ксения, А-02-23 + +## 1. Начало работы. +Запустила интерактивную оболочку IDLE и открыла окно текстового редактора, куда буду фиксировать мои дальнейшие действия. + +## 2. Вывод данных на экран дисплея. +#### 2.1. Вывод в командной строке. +Cодержимое любого объекта можно увидеть простым упоминанием его в командной строке (как это много раз делалось раньше), например: +```py +>> stroka='Автоматизированная система управления' +>> stroka +``` +_Вывод:_ +```py +'Автоматизированная система управления' +``` +Этот способ называется __«эхо-выводом»__. + + +#### 2.2. Вывод с использованием функции __print__. +Пример вывода: +```py +>> fff=234.5;gg='Значение температуры = ' +>> print(gg, fff) +``` + +_Вывод:_ +```py +Значение температуры = 234.5 +``` +По умолчанию выводимые объекты разделяются одним пробелом. Если нужен другой разделитель его можно указать в отдельном аргументе _sep_, например: + +```py +print(gg, fff, sep='/') +``` + _Вывод:_ +```py +Значение температуры = /234.5 + +``` +После вывода автоматически осуществляется переход на другую строку. Если курсор надо оставить в той же строке, то следует использовать еще один аргумент, например: + +```py +print(gg, fff,sep='/',end='***'); print('____') +``` + + _Вывод:_ +```py +Значение температуры = /234.5***____ +``` +После end= надо указать какими символами должна закончиться выводимая строка или указать пустую строку. Наоборот, если в какой-то момент требуется просто перейти на новую строку, можно использовать такое обращение к функции: + +```py +print() +``` + +Оператор вывода может располагаться на нескольких строках с использованием тройных кавычек: +```py +print(""" Здесь может выводиться +большой текст, +занимающий несколько строк""") +``` +_Вывод:_ +```py + Здесь может выводиться +большой текст, +занимающий несколько строк +``` +Или + +```py +print("Здесь может выводиться", + "большой текст,", + "занимающий несколько строк") +``` + +_Вывод:_ +```py +Здесь может выводиться большой текст, занимающий несколько строк +``` + +#### 2.3. Вывод с использованием метода __write__ объекта __sys.stdout__. +Объект stdout представляет собой поток стандартного вывода – объект, в который программы выводят символьное представление данных. Обычно это – экран дисплея. Объект находится в модуле sys, который надо импортировать. Например: +```py +import sys +sys.stdout.write('Функция write') +``` +_Вывод:_ +```py +Функция write +``` + +Этот метод после вывода строки не осуществляет переход на новую строку. Если это требуется, то следует в конце строки добавить один или несколько символов “\n”: + +```py +sys.stdout.write('Функция write\n') +``` +_Вывод:_ +```py +Функция write + +``` + +## 3. Ввод данных с клавиатуры. +Для ввода используйте уже знакомую функцию _input__. Например: + +```py +psw=input('Введите пароль:') +``` + +_Вывод:_ +```py +Введите пароль:12345 + +``` +Посмотрим тип данной переменной: +```py +print(type(psw)) +``` + +_Вывод:_ +```py + +``` + +_Пример 1._ Ввод с контролем значения. Пусть вводится число, которое должно находиться в интервале значений от 17.5 до 23.8. +```py +while True: + znach=float(input('Задайте коэф.усиления = ')) + if znach<17.5 or znach>23.8: + print('Ошибка!') + else: + break +``` + +_Вывод:_ +```py +Задайте коэф.усиления = 15.4 +Ошибка! +Задайте коэф.усиления = 21.6 +``` + +_Пример 2_. Ввод и обработка выражения, подлежащего расчету. +```py +import math +print(eval(input('введите выражение для расчета = '))) +``` + +_Вывод:_ +```py +введите выражение для расчета = math.log10(23/(1+math.exp(-3.24))) +1.34504378689765 +``` + +## 4. Ввод-вывод при работе с файлами. +#### 4.1. Функции для работы с путем к файлу. + +Как и в других системах, в среде __Python__ в любой момент времени подразумевается некоторый рабочий каталог. Какой рабочий каталог установлен в текущий момент времени? Это можно узнать с помощью функцииos.getcwd (cwd = current working directory): +```py +import os +os.getcwd() +``` + +_Вывод:_ +'C:\\Users\\user\\OneDrive\\Documents\\ZelenkinaKs\\python-labs\\TEMA6' +``` + +Сохраним этот путь в переменной с именем, совпадающим с моей фамилией в латинской транскрипции. Отобразите её значение с помощью функции __print__. + +```py +import os +ZelenkinaKs = os.getcwd() +print(ZelenkinaKs) +``` + +_Вывод:_ +```py +'C:\\Users\\user\\OneDrive\\Documents\\ZelenkinaKs\\python-labs\\TEMA6' +``` + +Изменить расположение рабочего каталога можно обращением к уже многократно применявшейся функции __os.chdir__, аргументом которой будет символьная строка с указанием пути к каталогу, назначаемому в качестве рабочего, например: + +```py +os.chdir('C:\Users\user\OneDrive\Documents\ZelenkinaKs\python-labs\TEMA5') +print(os.getcwd()) +``` +_Вывод:_ +```py +'C:\Users\user\OneDrive\Documents\ZelenkinaKs\python-labs\TEMA5' +``` + +Самостоятельно изучим и попробуем использовать следующие функции из модуля __os__: _mkdir, rmdir, listdir и функцию isdir из вложенного в os модуля os.path_. +```py +import os +from os.path import isdir +# Создание папки +os.mkdir("test_folder") +# Проверка существования папки +print(isdir("test_folder")) +# Просмотр содержимого текущей директории +print(os.listdir()) +# Просмотр содержимого конкретной папки +print(os.listdir("test_folder")) +# Удаление папки (должна быть пустой) +os.rmdir("test_folder") +# Проверка после удаления +print(isdir("test_folder")) +``` +_Вывод:_ +```py +True +['.gitkeep', 'protocol6.py', 'test_folder'] +[] +False +``` + +Изучили и выяснили, что: +__mkdir()__ - создает одну папку +__rmdir()__ - удаляет только пустые папки +__listdir()__ - возвращает список содержимого +__isdir()__ - проверяет, является ли путь папкой + +Пусть в рабочем каталоге находится файл Отчет6.md. С помощью функции __os.path.abspath__ получим символьную строку, содержащую имя файла вместе с полным путем доступа к нему: + +```py +fil=os.path.abspath("Отчет6.md") +print(fil) +``` +_Вывод:_ +```py +C:\Users\user\OneDrive\Documents\ZelenkinaKs\python-labs\TEMA6\Отчет6.md +``` +Выделим путь доступа к файлу из строки, содержащей и этот путь, и имя файла с помощью функции __os.path.dirname__: +```py +drkt=os.path.dirname(fil) +print(drkt)) +``` +_Вывод:_ +```py +C:\Users\user\OneDrive\Documents\ZelenkinaKs\python-labs\TEMA6 +``` +Наоборот, выделим имя файла из этой строки с отбрасыванием пути с помощью функции __os.path.basename__. +```py +nameFile = os.path.basename(fil) +print(nameFile) +``` +_Вывод:_ +```py +Отчет6.md +``` + +Самостоятельно изучим функцию __os.path.split__: +```py +SplitFile = os.path.split(fil) +print(SplitFile) +``` +_Вывод:_ +```py +('C:\\Users\\user\\OneDrive\\Documents\\ZelenkinaKs\\python-labs\\TEMA6', 'Отчет6.md') +``` +__os.path.split(path)__ - возвращает кортеж (путь, имя_файла) + +С помощью функции __os.path.exists__ можно проверить существует ли путь, заданный в символьной строке – аргументе функции. +```py +print(os.path.exists("\\python-labs\\TEMA6")) +print(os.path.exists("C:\\Users\\user\\")) +print(os.path.exists("Отчет6.md")) +print(os.path.exists(".")) +``` +_Вывод:_ +```py +False +True +True +True +``` +__os.path.exists()__ - проверяет существование пути. + +Проверим наличие файла с известным расположением с помощью функции __os.path.isfile__, аргументом которой должна быть символьная строка с путем и именем интересующего файла. +```py +exists = os.path.isfile("C:\\Users\\user\\OneDrive\\Documents\\ZelenkinaKs\\python-labs\\TEMA6\\Отчет6.md") +print(exists) +``` +_Вывод:_ +```py +True +``` + +#### 4.2. Общая схема работы с файлом. +Для обмена данными с файлом необходимо выполнить следующие операции: + • Открытие файла с указанием его имени и цели (чтение, запись, добавление данных); + • Выполнение одной или нескольких операций обмена данными с файлом; + • Закрытие файла. + +#### 4.3. Открытие файла для записи или чтения данных – функция __open__. +При открытии файла необходимо указать имя файлы (с путем, если он не в рабочем каталоге) и цель работы с ним. Для открытия используется функция __open__. +Открываем файл zapis1.txt для записи разными способами: +```py +fp=open(file=drkt+'\\zapis1.txt',mode='w') +print(type(fp)) +``` +_Вывод:_ +```py + +``` + +Более короткая запись (без имен аргументов): +```py +fp = open(drkt + '\\zapis1.txt', 'w') +``` + +Если файл в рабочем каталоге - путь можно опустить: +Более короткая запись (без имен аргументов): +```py +fp = open('zapis1.txt', 'w') +``` + +Разные режимы открытия файла: + __w__ – запись с созданием нового файла или перезапись существующего файла, + __w+__ - чтение и запись/перезапись файла, + __r__ – только чтение (это значение - по умолчанию), + __r+__ - чтение и/или запись в существующий файл, + __a__ – запись в конец существующего файла или, если его нет, запись с созданием файла, + __a+__ - то же, что и в «a», но с возможностью чтения из файла. + +Бинарные файлы: +fp_bin = open('data.bin', 'wb+') + +Символьные файлы (по умолчанию): +fp_text = open('data.txt', 'wt') + +#### 4.4. Закрытие файла. + +Сразу после завершения работы с файлом его следует закрыть для обеспечения сохранности его содержимого. Это делается с помощью метода __close__, применяемого к объекту – файловой переменной. Например: +```py +fp.close() +``` + +#### 4.5 Запись информации в файл с помощью метода __write__. +Метод __write__ относится к объекту – файловой переменной. +_Рассмотрим его применение на следующем примере:_ создадим список с элементами-числами от 1 до 12 и запишите их в файл по 4 числа на строке: +```py +sps=list(range(1,13)) +fp2=open('zapis3.txt','w') +fp2.write(str(sps[:4])+'\n') +fp2.write(str(sps[4:8])+'\n') +fp2.write(str(sps[8:])+'\n') +fp2.close() +``` +В файле появилась следующая запись: +```py +[1, 2, 3, 4] +[5, 6, 7, 8] +[9, 10, 11, 12] +``` + +Ещё один пример. Создадим список с элементами-списками: +```py +sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]] +``` +Пусть его элементы требуется построчно записать в файл zapis4.txt. +Первая попытка: +```py +fp3=open('zapis4.txt','w') +for i in range(len(sps3)): + stroka4=sps3[i][0]+' '+str(sps3[i][1]) + fp3.write(stroka4) +fp3.close() +``` +В файле появилась следующая запись: + + +Тогда попробуйте сделать так: +```py +gh = open('zapis5.txt', 'w') +for r in sps3: gh.write(r[0]+' '+str(r[1])+'\n') +gh.close() +``` + +_Вывод:_ + + + +#### 4.6. Первый способ чтения информации из текстового файла. +Прочитаем информацию из ранее созданного файла zapis3.txt. +```py +sps1=[] +fp=open('zapis3.txt') +for stroka in fp: + stroka=stroka.rstrip('\n') + stroka=stroka.replace('[','') + stroka=stroka.replace(']','') + sps1=sps1+stroka.split(',') +fp.close() +print(sps1) +``` +_Вывод:_ +```py +['1', ' 2', ' 3', ' 4', '5', ' 6', ' 7', ' 8', '9', ' 10', ' 11', ' 12'] +``` +Обратим внимание, что в функции открытия файла использован только один аргумент, остальные – со значениями «по умолчанию». +Здесь, перед занесением строки в список с помощью метода __rstrip__, из неё удаляется символ конца строки, а с помощью метода __replace__ – скобки. + +Список sps1 отличается от записи в файле тем, что: +sps1 - это список строк, а содержимое zapis3.txt - это вывод нескольких списков целых чисел. Такде в sps1 каждый элемент это _строка_, а в содержимом zapis3.txt - это целые числа. + Подумаем, как сделать так, чтобы список, полученный при чтении из файла, совпал с исходным: +```py +sps1 = [] +fp = open('zapis3.txt') +for stroka in fp: + stroka = stroka.rstrip('\n') + stroka = stroka.replace('[','') + stroka = stroka.replace(']','') + chisla_str = stroka.split(',') + chisla = [int(x) for x in chisla_str if x] + sps1.append(chisla) +fp.close() +for podspisok in sps1: + print(f"[{', '.join(map(str, podspisok))}]") +``` +_Вывод:_ +```py +[1, 2, 3, 4] +[5, 6, 7, 8] +[9, 10, 11, 12] +``` + +#### 4.7. Чтение информации из файла с помощью метода __read__. +Метод __read()__ читает данные из файла (текстового или бинарного) и возвращает строку или байтовую последовательность. Можно указать, сколько символов/байт прочитать; если не указать - прочитает всё до конца файла. Например: +```py +fp=open('zapis3.txt') +stroka1=fp.read(12) +stroka2=fp.read() +fp.close() +print(stroka1) +print(stroka2) +``` +_Вывод:_ +```py +[5, 6, 7, 8] +[9, 10, 11, 12] +``` + +#### 4.8. Чтение информации с помощью методов __readline__ и __readlines__. +__readline()__ читает одну строку из файла, начиная с текущей позиции. +__readlines()__ читает все строки, возвращая их в виде списка. +```py +fp=open('zapis3.txt') +stroka3=fp.readline(5) +stroka4=fp.readlines() +print(stroka3) +print(stroka4) +``` +_Вывод:_ +```py +[1, 2 +[', 3, 4]\n', '[5, 6, 7, 8]\n', '[9, 10, 11, 12]\n'] +``` + +#### 4.9. Ввод-вывод объектов с использованием функций из модуля __pickle__. +В модуле __pickle__ содержатся функции для работы с бинарными файлами, в которые могут последовательно записываться или считываться целиком один или несколько объектов из оперативной памяти. Рассмотрите этот способ работы с файлами на следующем примере: +```py +import pickle +mnoz1={'pen','book','pen','iPhone','table','book'} #Объект типа «множество» +fp=open('zapis6.mnz','wb') # Бинарный файл – на запись +pickle.dump(mnoz1,fp) #dump – метод записи объекта в файл +fp.close() +``` +_Вывод:_ + + +Теперь прочитаем данные из файла в объект __mnoz2__: +```py +fp=open('zapis6.mnz','rb') +mnoz2=pickle.load(fp) #load – метод чтения объекта из бинарного файла +fp.close() +print(mnoz2) +``` +_Вывод:_ +```py +{'book', 'pen', 'iPhone', 'table'} +``` +Данные переменные имеют тип данных set, что является неупорядоченной коллекцией. +__mnoz1__ и __mnoz2__ — это одно и то же множество, просто при его выводе на экран элементы могут быть показаны в разном порядке. + +А теперь с использованием тех же функций запишим в файл, а затем прочитаем два объекта разных типов: то же множество mnoz1 и ранее созданный список sps3. При считывании объекты извлекаются из файла в той же последовательности, в которой они в него записывались. +```py +fp = open('zapis7.2ob', 'wb') +pickle.dump(mnoz1, fp) +pickle.dump(sps3, fp) +fp.close() +fp = open('zapis7.2ob', 'rb') +obj1 = pickle.load(fp) # Первое обращение к load читает первый объект +obj2 = pickle.load(fp) # Второе – читает второй +fp.close() +print(obj1) +print(mnoz1) +print(obj2) +print(sps3) +``` +_Вывод:_ +```py +{'book', 'table', 'iPhone', 'pen'} +{'book', 'table', 'iPhone', 'pen'} +[['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] +[['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] +``` +obj1 совпадает с mnoz1, а obj2 c sps3. + +#### 5.Перенаправление потоков ввода и вывода данных. +```py +import sys +vr_out=sys.stdout #Запоминаем текущий поток вывода +fc=open('Stroka.txt','w') #Откроем файл вывода +sys.stdout=fc #Перенацеливаем стандартный поток вывода на файл +print('запись строки в файл') #Вывод теперь будет не на экран, а в файл +sys.stdout=vr_out #Восстановление текущего потока +print('запись строки на экран') #Убеждаемся, что вывод на экран восстановился +fc.close() +``` +_Вывод:_ +```py +запись строки на экран +``` +В результате создан файл Stroka.txt в текущем каталоге с содержанием +__'запись строки в файл'__ +Точно также можно перенаправить поток ввода – sys.stdin – вместо клавиатуры – из файла. +```py +import sys +tmp_in = sys.stdin #Запоминаем текущий поток ввода +fd = open("Stroka.txt", "r") #Открываем файл для ввода (чтения) +sys.stdin = fd #Перенацеливаем ввод на файл вместо клавиатуры +print(sys.stdin) +while True: + try: + line = input () #Считываем из файла строку + print(line) # Отображаем считанное + except EOFError: + break +fd.close() +sys.stdin=tmp_in #Не забыть вернуть стандартное назначение для потока ввода +``` +_Вывод:_ +```py +<_io.TextIOWrapper name='Stroka.txt' mode='r' encoding='cp1251'> +запись строки в файл +``` +## Завершение работы. \ No newline at end of file