From 5be734d43a5c68d6963bd046fe3b94bd06bfe4f1 Mon Sep 17 00:00:00 2001 From: EfimovaLA Date: Fri, 21 Nov 2025 06:45:33 +0000 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA6/report6.md | 744 ++++++++++++++++++++++++----------------------- 1 file changed, 373 insertions(+), 371 deletions(-) diff --git a/TEMA6/report6.md b/TEMA6/report6.md index e94ebd7..4fb5b72 100644 --- a/TEMA6/report6.md +++ b/TEMA6/report6.md @@ -1,371 +1,373 @@ -# Отчет по теме 6 -Ефимова Людмила, А-03-23 - -## 1. Запустила интерактивную оболочку и создала файл отчета - -## 2. Вывод данных на экран дисплея -### 2.1. Вывод в командной строке -Эхо-вывод строки. Нельзя использовать в пользовательских функциях. - -```py -stroka='Автоматизированная система управления' -stroka -'Автоматизированная система управления' -``` - -### 2.2. Вывод с использованием функции print - -```py -fff=234.5;gg='Значение температуры = ' -print(gg, fff) #Можно вывести несколько объектов за одно обращение к функции -Значение температуры = 234.5 -print(gg, fff, sep='/') # изменили разделитель по умолчанию на / -Значение температуры = /234.5 -``` -После вывода автоматически осуществляется переход на другую строку. Если курсор надо -оставить в той же строке, то следует использовать еще один аргумент. -После end указано какими символами кончается строка -```py -print(gg, fff,sep='/',end='***'); print('____') -Значение температуры = /234.5***____ -``` -Оператор вывода может располагаться на нескольких строках с использованием -тройных кавычек -```py -print(""" Здесь может выводиться -большой текст, -занимающий несколько строк""") - Здесь может выводиться -большой текст, -занимающий несколько строк -print("Здесь может выводиться", - "большой текст,", - "занимающий несколько строк") -Здесь может выводиться большой текст, занимающий несколько строк -``` -### 2.3. Вывод с использованием метода write объекта sys.stdout. -stdout представляет собой -поток стандартного вывода – объект, в который программы выводят символьное представление данных. - -```py -import sys -sys.stdout.write('Функция write') -Функция write13 -sys.stdout.write('Функция write\n') # \n перенос на следующую строку -Функция write -14 -``` - -## 3. Ввод данных с клавиатуры - -```py -psw=input('Введите пароль:') -Введите пароль: 1234 -psw -' 1234' -type(psw) - -``` -Ввод с контролем значения -```py -while True: - znach=float(input('Задайте коэф.усиления = ')) - if znach<17.5 or znach>23.8: - print('Ошибка!') - else: - break - -Задайте коэф.усиления = 4 -Ошибка! -Задайте коэф.усиления = 20 -``` -Вывод и обработка выражения, подлежащего расчету - -```py -import math -print(eval(input('введите выражение для расчета = '))) -введите выражение для расчета = math.log10(23/(1+math.exp(-3.24))) -1.34504378689765 -``` -## 4. Ввод-вывод данных при работе с файлами -Работа с файлом требует указания источника данных - полного имени файла с путем доступа к его расположению. - -### 4.1. Функции для работы с путем к файлу -```py -os.getcwd () -'C:\\Users\\Людмила\\AppData\\Local\\Programs\\Python\\Python313' -way = os.getcwd() # сохранили путь в переменную -way -'C:\\Users\\Людмила\\AppData\\Local\\Programs\\Python\\Python313' -``` -Установили новый рабочий каталог -```py -os.chdir('H:\\study\\ПОАС') -os.getcwd () -'H:\\study\\ПОАС' -``` -В модуле os также есть функции, позволяющие удалять и создавать директории. - -```py -os.listdir() #Возвращает список имен файлов находящихся в рабочей директории -['New directory', 'report — копия.odt', 'report3.md', 'report4.md', 'report5.md', 'report6.txt', 'Ris1.png', 'Ris2.png', 'task.md', 'task3.md', 'task4.md', 'Методические указания по ПОАС.pdf', 'репозиторий', 'Тест по модулю 1 ПОАС.docx'] -os.path.isdir("New directory"); os.path.isdir("test333") # Проверка наличия директории в рабочем каталоге -True -False -os.rmdir('New directory') # Удаление директории -os.listdir() -['report — копия.odt', 'report3.md', 'report4.md', 'report5.md', 'report6.txt', 'Ris1.png', 'Ris2.png', 'task.md', 'task3.md', 'task4.md', 'Методические указания по ПОАС.pdf', 'репозиторий', 'Тест по модулю 1 ПОАС.docx'] -``` -Можно также получить путь к файлу - -```py -fil=os.path.abspath("report5.md") -fil -'H:\\study\\ПОАС\\report5.md' -drkt = os.path.dirname(fil) -drkt -'H:\\study\\ПОАС' -name = os.path.basename(fil) # Выделение имени файла -name -'report5.md' -directory, fileName = os.path.split(fil) # Разделяет путь к файлу на путь доступа к файлу и его имя (Возвращает кортеж из этих двух составляющих) -print(directory);print(fileName) -H:\study\ПОАС -report5.md -``` -Проверка указывает ли путь к нужному файлу - -```py -os.path.isfile(fil) # Проверка пути к файлу -True -os.path.isfile("test.txt") -False -``` -### 4.2. Общая схема работы с файлами - -Для обмена данными с файлом необходимо выполнить следующие операции: - Открытие файла с указанием его имени и цели (чтение, запись, добавление данных); - Выполнение одной или нескольких операций обмена данными с файлом; - Закрытие файла. - -### 4.3. Открытие файла для записи или чтения данных - функция open -При открытии файла необходимо указать имя файлы (с путем, если он не в рабочем каталоге) и цель работы с ним. -fp – это файловый объект, сохраняет ссылку на открываемый файл. - -w – запись с созданием нового файла или перезапись существующего файла, -w+ - чтение и запись/перезапись файла, -r – только чтение (это значение - по умолчанию), -r+ - чтение и/или запись в существующий файл, -a – запись в конец существующего файла или, если его нет, запись с созданием файла, -a+ - то же, что и в «a», но с возможностью чтения из файла. - -```py -fp=open(file=drkt+'\\zapis1.txt',mode='w') # открыли файл для записи данных -fp=open(drkt+'\\zapis1.txt','w') # имена аргументов можно опустить -fp=open('zapis1.txt','w') # Открытие файла, путь к которому совпадает с рабочим каталогом - -type(fp) - -dir(fp) -['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_checkClosed', '_checkReadable', '_checkSeekable', '_checkWritable', '_finalizing', 'buffer', 'close', 'closed', 'detach', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', 'name', 'newlines', 'read', 'readable', 'readline', 'readlines', 'reconfigure', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'write', 'write_through', 'writelines'] -``` -### 4.4. Закрытие файла -```py -fp.close() -``` - -### 4.5. Запись информации в файл -Можно записать информацию в файл с помощью метода write - -```py -sps=list(range(1,13)) -sps -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] -fp2 = open("zapis3.txt", "w") # запись первых 4 значений и перенос строки -fp2.write(str(sps[:4])+'\n') -13 -fp2.write(str(sps[4:8])+'\n') -13 -fp2.write(str(sps[8:])+'\n') -16 -fp2.close() -``` -Содержимое файла -```py -[1, 2, 3, 4] -[5, 6, 7, 8] -[9, 10, 11, 12] -``` -Запись данных внутри цикла -```py -sps3 = [["Иванов И.", 1], ["Петров П.", 2], ["Сидоров С.", 3]] -for i in range(len(sps3)): - stroka4=sps3[i][0]+' '+str(sps3[i][1]) - fp3.write(stroka4) - -11 -11 -12 -fp3.close() -``` -Содержимое файла -```py -Иванов И. 1Петров П. 2Сидоров С. 3 -``` -Запишем иначе -```py -gh=open('zapis5.txt','w') -for r in sps3: - gh.write(r[0]+' '+str(r[1])+'\n') - -12 -12 -13 -for r in sps3: gh.write(r[0]+' '+str(r[1])+'\n') # в одну строку -12 -12 -13 -``` -Содержимое файла -```py -Иванов И. 1 -Петров П. 2 -Сидоров С. 3 -``` - -### 4.6. Чтение информации из текстового файла внутри цикла. -Чтение данных из файла происходит последовательно, начиная с некоторого символа. В качестве примера прочитан ранее созданный файл zapis3.txt: -```py -fp=open('zapis3.txt') -for stroka in fp: - stroka=stroka.rstrip('\n') - stroka=stroka.replace('[','') - stroka=stroka.replace(']','') - sps1=sps1+stroka.split(',') - -fp.close() -sps1 -['1', ' 2', ' 3', ' 4', '5', ' 6', ' 7', ' 8', '9', ' 10', ' 11', ' 12'] -``` -Сделаем чтобы элементы совпадали с исходными - -```py -for i in range(len(sps1)): - sps1[i] = int(sps1[i]) -sps1 -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] -``` -### 4.7. Чтение информации с помощью метода read -Метод read, также как и write, относится к объекту - файловой переменной. - -```py -fp=open('zapis3.txt') -stroka1=fp.read(12) -stroka2=fp.read() -fp.close() -stroka2 -'\n[5, 6, 7, 8]\n[9, 10, 11, 12]\n' -stroka1 -'[1, 2, 3, 4]' -``` -### 4.8. Чтение информации с помощью методов readline и readlines - -```py -fp = open("zapis3.txt") -stroka1 = fp.readline() # Чтение первой строки файла -stroka2 = fp.readline() # Чтение второй строки файла -fp.close() -fp = open("zapis3.txt") -stroka3 = fp.readlines() # Чтение всех строк файла -fp.close() -stroka1 -'[1, 2, 3, 4]\n' -stroka2 -'[5, 6, 7, 8]\n' -stroka3 -['[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() - -fp=open('zapis6.mnz','rb') -mnoz2=pickle.load(fp) #load – метод чтения объекта из бинарного файла -fp.close() -mnoz1 -{'iPhone', 'pen', 'book', 'table'} -mnoz2 -{'pen', 'table', 'book', 'iPhone'} -mnoz2 == mnoz1 -True -``` -Получение объекта из файла можно осуществить с помощью метода load: - -```py -fp = open("zapis6.mnz", "rb") -mnoz2 = pickle.load(fp) # Получение объекта из файла -fp.close() -fp = open("zapis7.2ob", "wb") -pickle.dump(mnoz1, fp) -pickle.dump(sps3, fp) -fp.close() -fp = open("zapis7.2ob", "rb") -obj1 = pickle.load(fp) # Получение объекта, записанного первым -obj2 = pickle.load(fp) # Получение объекта, записанного вторым -fp.close() -obj1 -{'pen', 'table', 'book', 'iPhone'} -obj2 -[['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] -``` -## 5. Перенаправление потоков ввода и вывода данных. -Потоки ввода-вывода можно перенаправлять, например в файл: - -```py -import sys -vr_out = sys.stdout # Сохранение текущего потока вывода -fc = open("Stroka.txt", "w") -sys.stdout = fc # Перезапись потока вывода с экрана на файл -print("Запись строки в файл") -fc.close() -sys.stdout = vr_out # Возвращение истинного значения потока вывода -print("Запись строки на экран") -Запись строки на экран -``` -Содержимое файла - -```py -Запись строки в файл -``` -Точно также можно перенаправить поток ввода – sys.stdin – вместо клавиатуры – из файла. - -```py -tmp_in = sys.stdin # Сохранение текущего потока ввода -fd = open("Stroka.txt", "r") # Открываем файл для ввода (чтения) -sys.stdin = fd # Перенацеливаем ввод на файл вместо клавиатуры -sys.stdin -<_io.TextIOWrapper name='Stroka.txt' mode='r' encoding='cp1251'> -while True: - try: - line = input() # Чтение строки из файла - print(line) - except EOFError: - break - - -Запись строки в файл - -fd.close() -``` -## 6. Завершила работу со средой - - - - - - +# Отчет по теме 6 +Ефимова Людмила, А-03-23 + +## 1. Запустила интерактивную оболочку и создала файл отчета + +## 2. Вывод данных на экран дисплея +### 2.1. Вывод в командной строке +Эхо-вывод строки. Нельзя использовать в пользовательских функциях. + +```py +stroka='Автоматизированная система управления' +stroka +'Автоматизированная система управления' +``` + +### 2.2. Вывод с использованием функции print + +```py +fff=234.5;gg='Значение температуры = ' +print(gg, fff) #Можно вывести несколько объектов за одно обращение к функции +Значение температуры = 234.5 +print(gg, fff, sep='/') # изменили разделитель по умолчанию на / +Значение температуры = /234.5 +``` +После вывода автоматически осуществляется переход на другую строку. Если курсор надо +оставить в той же строке, то следует использовать еще один аргумент. +После end указано какими символами кончается строка +```py +print(gg, fff,sep='/',end='***'); print('____') +Значение температуры = /234.5***____ +``` +Оператор вывода может располагаться на нескольких строках с использованием +тройных кавычек +```py +print(""" Здесь может выводиться +большой текст, +занимающий несколько строк""") + Здесь может выводиться +большой текст, +занимающий несколько строк +print("Здесь может выводиться", + "большой текст,", + "занимающий несколько строк") +Здесь может выводиться большой текст, занимающий несколько строк +``` +### 2.3. Вывод с использованием метода write объекта sys.stdout. +stdout представляет собой +поток стандартного вывода – объект, в который программы выводят символьное представление данных. + +```py +import sys +sys.stdout.write('Функция write') +Функция write13 +sys.stdout.write('Функция write\n') # \n перенос на следующую строку +Функция write +14 +``` + +## 3. Ввод данных с клавиатуры + +```py +psw=input('Введите пароль:') +Введите пароль: 1234 +psw +' 1234' +type(psw) + +``` +Ввод с контролем значения +```py +while True: + znach=float(input('Задайте коэф.усиления = ')) + if znach<17.5 or znach>23.8: + print('Ошибка!') + else: + break + +Задайте коэф.усиления = 4 +Ошибка! +Задайте коэф.усиления = 20 +``` +Вывод и обработка выражения, подлежащего расчету + +```py +import math +print(eval(input('введите выражение для расчета = '))) +введите выражение для расчета = math.log10(23/(1+math.exp(-3.24))) +1.34504378689765 +``` +## 4. Ввод-вывод данных при работе с файлами +Работа с файлом требует указания источника данных - полного имени файла с путем доступа к его расположению. + +### 4.1. Функции для работы с путем к файлу +```py +os.getcwd () +'C:\\Users\\Людмила\\AppData\\Local\\Programs\\Python\\Python313' +way = os.getcwd() # сохранили путь в переменную +way +'C:\\Users\\Людмила\\AppData\\Local\\Programs\\Python\\Python313' +``` +Установили новый рабочий каталог +```py +os.chdir('H:\\study\\ПОАС') +os.getcwd () +'H:\\study\\ПОАС' +``` +В модуле os также есть функции, позволяющие удалять и создавать директории. + +```py +os.listdir() #Возвращает список имен файлов находящихся в рабочей директории +['New directory', 'report — копия.odt', 'report3.md', 'report4.md', 'report5.md', 'report6.txt', 'Ris1.png', 'Ris2.png', 'task.md', 'task3.md', 'task4.md', 'Методические указания по ПОАС.pdf', 'репозиторий', 'Тест по модулю 1 ПОАС.docx'] +os.path.isdir("New directory"); os.path.isdir("test333") # Проверка наличия директории в рабочем каталоге +True +False +os.rmdir('New directory') # Удаление директории +os.listdir() +['report — копия.odt', 'report3.md', 'report4.md', 'report5.md', 'report6.txt', 'Ris1.png', 'Ris2.png', 'task.md', 'task3.md', 'task4.md', 'Методические указания по ПОАС.pdf', 'репозиторий', 'Тест по модулю 1 ПОАС.docx'] +``` +Можно также получить путь к файлу + +```py +fil=os.path.abspath("report5.md") +fil +'H:\\study\\ПОАС\\report5.md' +drkt = os.path.dirname(fil) +drkt +'H:\\study\\ПОАС' +name = os.path.basename(fil) # Выделение имени файла +name +'report5.md' +directory, fileName = os.path.split(fil) # Разделяет путь к файлу на путь доступа к файлу и его имя (Возвращает кортеж из этих двух составляющих) +print(directory);print(fileName) +H:\study\ПОАС +report5.md +``` +Проверка указывает ли путь к нужному файлу + +```py +os.path.isfile(fil) # Проверка пути к файлу +True +os.path.isfile("test.txt") +False +``` +### 4.2. Общая схема работы с файлами + +Для обмена данными с файлом необходимо выполнить следующие операции: +Открытие файла с указанием его имени и цели (чтение, запись, добавление данных); + +Выполнение одной или нескольких операций обмена данными с файлом; + +Закрытие файла. + +### 4.3. Открытие файла для записи или чтения данных - функция open +При открытии файла необходимо указать имя файлы (с путем, если он не в рабочем каталоге) и цель работы с ним. +fp – это файловый объект, сохраняет ссылку на открываемый файл. + +w – запись с созданием нового файла или перезапись существующего файла, +w+ - чтение и запись/перезапись файла, +r – только чтение (это значение - по умолчанию), +r+ - чтение и/или запись в существующий файл, +a – запись в конец существующего файла или, если его нет, запись с созданием файла, +a+ - то же, что и в «a», но с возможностью чтения из файла. + +```py +fp=open(file=drkt+'\\zapis1.txt',mode='w') # открыли файл для записи данных +fp=open(drkt+'\\zapis1.txt','w') # имена аргументов можно опустить +fp=open('zapis1.txt','w') # Открытие файла, путь к которому совпадает с рабочим каталогом + +type(fp) + +dir(fp) +['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_checkClosed', '_checkReadable', '_checkSeekable', '_checkWritable', '_finalizing', 'buffer', 'close', 'closed', 'detach', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', 'name', 'newlines', 'read', 'readable', 'readline', 'readlines', 'reconfigure', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'write', 'write_through', 'writelines'] +``` +### 4.4. Закрытие файла +```py +fp.close() +``` + +### 4.5. Запись информации в файл +Можно записать информацию в файл с помощью метода write + +```py +sps=list(range(1,13)) +sps +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] +fp2 = open("zapis3.txt", "w") # запись первых 4 значений и перенос строки +fp2.write(str(sps[:4])+'\n') +13 +fp2.write(str(sps[4:8])+'\n') +13 +fp2.write(str(sps[8:])+'\n') +16 +fp2.close() +``` +Содержимое файла +```py +[1, 2, 3, 4] +[5, 6, 7, 8] +[9, 10, 11, 12] +``` +Запись данных внутри цикла +```py +sps3 = [["Иванов И.", 1], ["Петров П.", 2], ["Сидоров С.", 3]] +for i in range(len(sps3)): + stroka4=sps3[i][0]+' '+str(sps3[i][1]) + fp3.write(stroka4) + +11 +11 +12 +fp3.close() +``` +Содержимое файла +```py +Иванов И. 1Петров П. 2Сидоров С. 3 +``` +Запишем иначе +```py +fp3=open('zapis5.txt','w') +for r in sps3: + fp3.write(r[0]+' '+str(r[1])+'\n') + +12 +12 +13 +for r in sps3: fp3.write(r[0]+' '+str(r[1])+'\n') # в одну строку +12 +12 +13 +``` +Содержимое файла +```py +Иванов И. 1 +Петров П. 2 +Сидоров С. 3 +``` + +### 4.6. Чтение информации из текстового файла внутри цикла. +Чтение данных из файла происходит последовательно, начиная с некоторого символа. В качестве примера прочитан ранее созданный файл zapis3.txt: +```py +fp=open('zapis3.txt') +for stroka in fp: + stroka=stroka.rstrip('\n') + stroka=stroka.replace('[','') + stroka=stroka.replace(']','') + sps1=sps1+stroka.split(',') + +fp.close() +sps1 +['1', ' 2', ' 3', ' 4', '5', ' 6', ' 7', ' 8', '9', ' 10', ' 11', ' 12'] +``` +Сделаем чтобы элементы совпадали с исходными + +```py +for i in range(len(sps1)): + sps1[i] = int(sps1[i]) +sps1 +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] +``` +### 4.7. Чтение информации с помощью метода read +Метод read, также как и write, относится к объекту - файловой переменной. + +```py +fp=open('zapis3.txt') +stroka1=fp.read(12) +stroka2=fp.read() +fp.close() +stroka2 +'\n[5, 6, 7, 8]\n[9, 10, 11, 12]\n' +stroka1 +'[1, 2, 3, 4]' +``` +### 4.8. Чтение информации с помощью методов readline и readlines + +```py +fp = open("zapis3.txt") +stroka1 = fp.readline() # Чтение первой строки файла +stroka2 = fp.readline() # Чтение второй строки файла +fp.close() +fp = open("zapis3.txt") +stroka3 = fp.readlines() # Чтение всех строк файла +fp.close() +stroka1 +'[1, 2, 3, 4]\n' +stroka2 +'[5, 6, 7, 8]\n' +stroka3 +['[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() + +fp=open('zapis6.mnz','rb') +mnoz2=pickle.load(fp) #load – метод чтения объекта из бинарного файла +fp.close() +mnoz1 +{'iPhone', 'pen', 'book', 'table'} +mnoz2 +{'pen', 'table', 'book', 'iPhone'} +mnoz2 == mnoz1 +True +``` +Получение объекта из файла можно осуществить с помощью метода load: + +```py +fp = open("zapis6.mnz", "rb") +mnoz2 = pickle.load(fp) # Получение объекта из файла +fp.close() +fp = open("zapis7.2ob", "wb") +pickle.dump(mnoz1, fp) +pickle.dump(sps3, fp) +fp.close() +fp = open("zapis7.2ob", "rb") +obj1 = pickle.load(fp) # Получение объекта, записанного первым +obj2 = pickle.load(fp) # Получение объекта, записанного вторым +fp.close() +obj1 +{'pen', 'table', 'book', 'iPhone'} +obj2 +[['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] +``` +## 5. Перенаправление потоков ввода и вывода данных. +Потоки ввода-вывода можно перенаправлять, например в файл: + +```py +import sys +vr_out = sys.stdout # Сохранение текущего потока вывода +fc = open("Stroka.txt", "w") +sys.stdout = fc # Перезапись потока вывода с экрана на файл +print("Запись строки в файл") +fc.close() +sys.stdout = vr_out # Возвращение истинного значения потока вывода +print("Запись строки на экран") +Запись строки на экран +``` +Содержимое файла + +```py +Запись строки в файл +``` +Точно также можно перенаправить поток ввода – sys.stdin – вместо клавиатуры – из файла. + +```py +tmp_in = sys.stdin # Сохранение текущего потока ввода +fd = open("Stroka.txt", "r") # Открываем файл для ввода (чтения) +sys.stdin = fd # Перенацеливаем ввод на файл вместо клавиатуры +sys.stdin +<_io.TextIOWrapper name='Stroka.txt' mode='r' encoding='cp1251'> +while True: + try: + line = input() # Чтение строки из файла + print(line) + except EOFError: + break + + +Запись строки в файл + +fd.close() +``` +## 6. Завершила работу со средой + + + + + +