# Отчет по теме 6 Хатюхин Евгений, А-02-23 # 1 Запустил IDLE # 2 Изучил вывод данных на экран дисплея ## 2.1 Изучил эхо-вывод ```py stroka='Автоматизированная система управления' stroka 'Автоматизированная система управления' ``` ## 2.2 Изучение вывода данных с помощью печати ```py fff=234.5;gg='Значение температуры = ' print(gg, fff) #Можно вывести несколько объектов за одно обращение к функции Значение температуры = 234.5 print(gg, fff, sep='/') Значение температуры = /234.5 print(gg, fff,sep='/',end='***'); print('____') Значение температуры = /234.5***____ print() print(""" Здесь может выводиться большой текст, занимающий несколько строк""") Здесь может выводиться большой текст, занимающий несколько строк print("Здесь может выводиться", "большой текст,", "занимающий несколько строк") Здесь может выводиться большой текст, занимающий несколько строк ``` ## 2.3 Изучение вывода данных с помощью функции write ```py import sys sys.stdout.write('Функция write') Функция write13 sys.stdout.write('Функция write\n') Функция write 14 ``` # 3 Изучение ввода данных с клавиатуры ```py psw=input('Введите пароль:') Введите пароль:12345 psw '12345' type(psw) while True: znach=float(input('Задайте коэф.усиления = ')) if znach<17.5 or znach>23.8: print('Ошибка!') else: break Задайте коэф.усиления = 15.4 Ошибка! Задайте коэф.усиления = 21.6 import math print(eval(input('введите выражение для расчета = '))) введите выражение для расчета = math.log10(23/(1+math.exp(-3.24))) 1.34504378689765 ``` # 4 Изучение различных способов чтения данных из файла и записи в файл ## 4.1 Изучение модуля os для работы с путями к файлам mkdir - создает папку в рабочем каталоге (в приложенном фото видно, что в каталоге появилась папка);   ![[Pasted image 20251108152648.png]] rmdir - удаляет из каталога пустую папку; ![[Pasted image 20251108152738.png]] listdir - возвращает список имен файлов/папок в указанном каталоге (или если аргумент не указан, то в текущем каталоге); path.isdir - возвращает true, если папка является существующей в каталоге. ```py import os os.getcwd() 'C:\\Users\\Евгений\\AppData\\Local\\Programs\\Python\\Python313' a = str(os.getcwd()) a 'C:\\Users\\Евгений\\AppData\\Local\\Programs\\Python\\Python313' os.chdir('C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA6') os.getcwd() 'C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA6' os.mkdir("new1") os.rmdir("new1") os.listdir() ['.gitkeep', 'task.md'] os.path.isdir("new1") False os.path.isdir("task") False os.path.isdir("tema") False os.path.isdir("report") False os.path.isdir("abc") True fil=os.path.abspath("report.md") fil 'C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA6\\report.md' drkt=os.path.dirname(fil) drkt 'C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA6' name = os.path.basename(fil) name 'report.md' head, tail = os.path.split(fil) head 'C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA6' tail 'report.md' os.path.exists('C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA6') True os.path.exists('C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA8') True os.path.exists('C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA20') False os.path.isfile(fil) False os.path.isfile(head+tail) False os.path.isfile(head+'task.md') False fil=os.path.abspath("task.md") os.path.isfile(fil) True ``` ## 4.2 Изучение обобщенного процесса работы с файлами Для обмена данными с файлом необходимо выполнить следующие операции: - Открытие файла с указанием его имени и цели (чтение, запись, добавление данных); - Выполнение одной или нескольких операций обмена данными с файлом; - Закрытие файла. ## 4.3 Изучение функции open для открытия файлов с разной целью ```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') fp2.write(str(sps[:4])+'\n') 13 fp2.write(str(sps[4:8])+'\n') 13 fp2.write(str(sps[8:])+'\n') 16 fp2.close() ``` ![[Pasted image 20251108154730.png]] ```py sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]] 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) 11 11 12 fp3.close() ``` ![[Pasted image 20251108154854.png]] ```py gh=open('zapis5.txt','w') for r in sps3: gh.write(r[0]+' '+str(r[1])+'\n') 12 12 13 gh.close() gh=open('zapis6.txt','w') for r in sps3: gh.write(r[0]+' '+str(r[1])+'\n') 12 12 13 gh.close() ``` ![[Pasted image 20251108155051.png]] ![[Pasted image 20251108155102.png]] ## 4.6 Изучение одного из способов чтения данных из файла с помощью цикла for ```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() sps1 ['1', ' 2', ' 3', ' 4', '5', ' 6', ' 7', ' 8', '9', ' 10', ' 11', ' 12'] sps2=[] for i in sps1: sps2.append(int(i)) sps2 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] ``` ## 4.7 Изучение способа чтения данных из файла с помощью функции read ```py fp=open('zapis3.txt') stroka1=fp.read(12) stroka2=fp.read() fp.close() stroka1 '[1, 2, 3, 4]' stroka2 '\n[5, 6, 7, 8]\n[9, 10, 11, 12]\n' ``` ## 4.8 Изучение чтения данных из файла по строкам ```py fp=open('zapis3.txt') s1 = fp.readline() s2 = fp.readline() s1 '[1, 2, 3, 4]\n' s2 '[5, 6, 7, 8]\n' fp.close() fp=open('zapis3.txt') s3 = fp.readlines() s3 ['[1, 2, 3, 4]\n', '[5, 6, 7, 8]\n', '[9, 10, 11, 12]\n'] ``` ## 4.9 Изучение работы с бинарными файлами с помощью модуля 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() mnoz2 #Результат не такой как при вводе множества mnoz1, так как множество не имеет повторений и порядка элементов, поэтому автоматически множество обьединило повторяющиеся слова. {'pen', 'book', 'iPhone', 'table'} mnoz1 == mnoz2 True ``` ![[Pasted image 20251110134630.png]] ```py fp=open('zapis7.2ob','wb') pickle.dump(mnoz1,fp) pickle.dump(sps3,fp) sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]] pickle.dump(sps3,fp) fp.close() fp=open('zapis7.2ob','rb') obj1=pickle.load(fp) obj2=pickle.load(fp) fp.close() obj1 {'pen', 'book', 'iPhone', 'table'} obj2 [['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] ``` # 5 Перенаправление потоков ввода и вывода данных ```py import sys vr_out=sys.stdout fc=open('Stroka.txt','w') sys.stdout=fc print('запись строки в файл') sys.stdout=vr_out print('запись строки на экран') запись строки на экран fc.close() ``` ![[Pasted image 20251110142228.png]] ```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() sys.stdin=tmp_in ```