From 7a9d11dc03800f5fd309b84fa381e3e91fea20fb Mon Sep 17 00:00:00 2001 From: Solovyova_ED Date: Mon, 17 Nov 2025 22:05:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BE=D1=82=D1=87=D1=91=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA6/4.5.py | 11 +++ TEMA6/4.6.py | 8 ++ TEMA6/4.7.py | 4 + TEMA6/4.9.py | 22 +++++ TEMA6/5.py | 26 ++++++ TEMA6/OPLATA.dbf | 0 TEMA6/Stroka.txt | 1 + TEMA6/report.md | 235 +++++++++++++++++------------------------------ TEMA6/task.md | 0 TEMA6/zapis1.txt | 0 TEMA6/zapis2.bin | 0 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 16 files changed, 162 insertions(+), 152 deletions(-) create mode 100644 TEMA6/4.5.py create mode 100644 TEMA6/4.6.py create mode 100644 TEMA6/4.7.py create mode 100644 TEMA6/4.9.py create mode 100644 TEMA6/5.py create mode 100644 TEMA6/OPLATA.dbf create mode 100644 TEMA6/Stroka.txt create mode 100644 TEMA6/task.md 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 diff --git a/TEMA6/4.5.py b/TEMA6/4.5.py new file mode 100644 index 0000000..cf3b358 --- /dev/null +++ b/TEMA6/4.5.py @@ -0,0 +1,11 @@ +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() + + + + + diff --git a/TEMA6/4.6.py b/TEMA6/4.6.py new file mode 100644 index 0000000..af65eef --- /dev/null +++ b/TEMA6/4.6.py @@ -0,0 +1,8 @@ +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() diff --git a/TEMA6/4.7.py b/TEMA6/4.7.py new file mode 100644 index 0000000..1b1159e --- /dev/null +++ b/TEMA6/4.7.py @@ -0,0 +1,4 @@ +fp = open('zapis3.txt', 'r') +lines = fp.readlines() +print("readlines():", lines) +fp.close() diff --git a/TEMA6/4.9.py b/TEMA6/4.9.py new file mode 100644 index 0000000..2c698c7 --- /dev/null +++ b/TEMA6/4.9.py @@ -0,0 +1,22 @@ +import pickle #это модуль в Python для сериализации и десериализации объектов. Он преобразует объекты Python в поток байтов (сериализация) и обратно (десериализация) +mnoz1={'pen','book','pen','iPhone','table','book'} #если подать на вывод, будет только 'book', 'iPhone', 'table', 'pen' +fp = open('zapis6.mnz','wb') +pickle.dump(mnoz1, fp) #функция dump принимает объект и сериализует в поток байтов +fp.close() + +fp = open('zapis6.mnz', 'rb') +mnoz2 = pickle.load(fp); mnoz2 #метод чтения объекта из бинарного файла +{'pen', 'iPhone', 'book', 'table'} #содержимое совпадает, но в разном порядке +fp.close() + +fp = open('zapis7.2ob', 'wb') +pickle.dump(mnoz1, fp) +sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]] +pickle.dump(sps3,fp) +fp.close() +fp = open('zapis7.2ob', 'rb') +obj1 = pickle.load(fp); obj1 #читает первый + +obj2 = pickle.load(fp); obj2 #читает второй + + diff --git a/TEMA6/5.py b/TEMA6/5.py new file mode 100644 index 0000000..f1a6495 --- /dev/null +++ b/TEMA6/5.py @@ -0,0 +1,26 @@ +import sys +vr_out=sys.stdout #Запоминаем текущий поток вывода +fc=open('Stroka.txt','w') #Откроем файл вывода +sys.stdout=fc #Перенацеливаем стандартный поток вывода на файл +print('запись строки в файл') #Вывод теперь будет не на экран, а в файл +sys.stdout=vr_out #Восстановление текущего потока +print('запись строки на экран') #Убеждаемся, что вывод на экран восстановился +fc.close() + +tmp_in = sys.stdin +fd = open("Stroka.txt", "r") +sys.stdin = fd +sys.stdin +while True: + try: + line = input() + print(line) + except EOFError: + break +fd.close() +sys.stdin = tmp_in + + + + + diff --git a/TEMA6/OPLATA.dbf b/TEMA6/OPLATA.dbf new file mode 100644 index 0000000..e69de29 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/report.md b/TEMA6/report.md index d1fccf1..9332508 100644 --- a/TEMA6/report.md +++ b/TEMA6/report.md @@ -7,7 +7,6 @@ os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA6 ``` ## 2 вывод данных на экран дисплея ## 2.1 Вывод в командной строке - ```py stroka='Автоматизированная система управления' stroka @@ -16,9 +15,7 @@ stroka ## 2.2 Вывод с использованием функции print - Вывод информации на экран. Можно использовать и в теле функции и в командной строке - ```py fff=234.5;gg='Значение температуры = ' print(gg, fff) @@ -43,9 +40,7 @@ print("Здесь может выводиться", * Тройные кавычки сохраняют структуру многострочного текста - ## 2.3 Вывод с использованием метода write объекта sys.stdout - ```py import sys sys.stdout.write('Функция write') @@ -56,7 +51,6 @@ sys.stdout.write('Функция write\n') ``` ## 2 Ввод данных с клавиатуры - ```py Введите пароль:1234 print(psw) @@ -128,6 +122,7 @@ False * Закрытие файла. ## 4.3. Открытие файла для записи или чтения данных – функция open. + ```py fp=open('zapis1.txt','w') type(fp);dir(fp) @@ -135,12 +130,12 @@ 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'] ``` Для второго аргумента «mode=…» могут быть заданы следующие значения: - w – запись с созданием нового файла или перезапись существующего файла, - w+ - чтение и запись/перезапись файла, - r – только чтение (это значение - по умолчанию), - r+ - чтение и/или запись в существующий файл, - a – запись в конец существующего файла или, если его нет, запись с созданием файла, - a+ - то же, что и в «a», но с возможностью чтения из файла. + * w – запись с созданием нового файла или перезапись существующего файла, + * w+ - чтение и запись/перезапись файла, + * r – только чтение (это значение - по умолчанию), + * r+ - чтение и/или запись в существующий файл, + * a – запись в конец существующего файла или, если его нет, запись с созданием файла, + * a+ - то же, что и в «a», но с возможностью чтения из файла. В зависимости от значения этого аргумента тип создаваемой файловой переменной может быть разным. При открытии бинарного файла к указанным выше буквам в аргументе-цели надо добавить сим-вол «b». @@ -167,14 +162,17 @@ fp2.write(str(sps[4:8])+'\n') fp2.write(str(sps[8:])+'\n') 16 fp2.close() + ``` Содержимое файла приведено ниже + ```txt [1, 2, 3, 4] [5, 6, 7, 8] [9, 10, 11, 12] ``` + Попытка 1 ```py sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]] @@ -184,10 +182,7 @@ for i in range(len(sps3)): fp3.write(stroka4) fp3.close() ``` - Содержимое текстового файла: - - ```txt Иванов И. 1Петров П. 2Сидоров С. 3 ``` @@ -197,7 +192,7 @@ fp3.close() gh = open('zapis5.txt','w') for r in sps3: gh.write(r[0]+' '+str(r[1])+'\n') - + gh.close() ``` @@ -209,6 +204,7 @@ gh.close() ``` ## 4.6 Первый способ чтения информации из текстового файла + ```py sps1=[] fp=open('zapis3.txt') @@ -225,8 +221,23 @@ print(sps) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] ``` +## 4.7 Чтение информации из файла с помощью метода read -## 4.7 Чтение информации из файла с помощью методов readline и readlines +```py +fp = open('zapis3.txt') +stroka1 = fp.read(12) +stroka2 = fp.read() +fp.close() + +print(stroka1) +[1, 2, 3, 4] +print(stroka2) + +[5, 6, 7, 8] +[9, 10, 11, 12] +``` + +## 4.8 Чтение информации с помощью методов readline и readlines ```py fp = open('zapis3.txt', 'r') @@ -244,157 +255,77 @@ readline(): Строка 3: '[9, 10, 11, 12]\n' fp = open('zapis3.txt', 'r') -lines = fp.readlines() # читает ВСЕ строки в список +lines = fp.readlines() # читает все строки в список print("readlines():", lines) fp.close() readlines(): ['[1, 2, 3, 4]\n', '[5, 6, 7, 8]\n', '[9, 10, 11, 12]\n'] ``` - - -## 4.8 Ввод-вывод объектов с использованием функций из модуля pickle +## 4.9 Ввод-вывод объектов с использованием функций из модуля pickle ```py - ->>> import pickle - ->>> mnoz1={'pen','book','pen','iPhone','table','book'} - ->>> fp=open('zapis6.mnz','wb') - ->>> pickle.dump(mnoz1,fp) - ->>> fp.close() - ->>> fp.close() - ->>> fp=open('zapis6.mnz','rb') - ->>> mnoz2=pickle.load(fp) - ->>> fp.close() - ->>> print(mnoz2) - -{'iPhone', 'pen', 'table', 'book'} - ->>> mnoz1 == mnoz2 - -True - ->>> 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 - -{'iPhone', 'pen', 'table', 'book'} - ->>> mnoz1 - -{'iPhone', 'pen', 'table', 'book'} - ->>> obj2 - -\[\['Иванов И.', 1], \['Петров П.', 2], \['Сидоров С.', 3]] - ->>> sps3 - -\[\['Иванов И.', 1], \['Петров П.', 2], \['Сидоров С.', 3]] - ->>> mnoz1 == obj1 - -True - ->>> sps3 == obj2 - -True - +import pickle +mnoz1={'pen','book','pen','iPhone','table','book'} +fp = open('zapis6.mnz','wb') +pickle.dump(mnoz1,fp) +fp.close() +``` +```txt +Вывод: 耄锣 鐨谆楐桯湥钌մ慢汥钌Ͱ敮钌Ѣ潯殔逮 ``` - - - -## 4.9 Перенаправление потоков ввода и вывода данных - - - ```py - ->>> import sys - ->>> vr\_out=sys.stdout - ->>> fc=open('Stroka.txt','w') - ->>> sys.stdout=fc - ->>> print('запись строки в файл') - ->>> sys.stdout=vr\_out - ->>> print('запись строки на экран') - -запись строки на экран - ->>> fc.close() - +fp=open('zapis6.mnz','rb') +mnoz2=pickle.load(fp) +fp.close() +mnoz2 +{'book', 'iPhone', 'pen', 'table'} +mnoz1 == mnoz2 +True ``` - - - -Содержимое файла - - - -```txt - -запись строки в файл - +Множество в Python автоматически удаляет все дубликаты и не сохраняет порядок элементов, поэтому mnoz2 не совпадает с тем, что было задано при создании mnoz1 +```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) +obj2=pickle.load(fp) +fp.close() +print(obj1,obj2) +{'book', 'iPhone', 'pen', 'table'} [['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] +print(mnoz1,sps3) +{'iPhone', 'table', 'pen', 'book'} [['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] ``` - +## 5 Перенаправление потоков ввода и вывода данных ```py +import sys #это импорт встроенного модуля sys, который предоставляет доступ к системным параметрам и функциям, связанным с интерпретатором Python +vr_out = sys.stdout #текущий поток вывода +fc = open('Stroka.txt', 'w') #файл вывода +sys.stdout = fc #перенаправление стандартного потока вывода в файл +print('запись строки в файл') +sys.stdout = vr_out #восстановление текущего потока +print('запись строки на экран') +запись строки на экран +fc.close() ->>> 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 +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 - +fd.close() +sys.stdin = tmp_in ``` + diff --git a/TEMA6/task.md b/TEMA6/task.md 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..e69de29 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..578a63e --- /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..4aeaa6151ec0a7dd0864e452bab5394f7c75d3bb GIT binary patch literal 46 wcmZo*nX1eH0sT`nde|}pGV=3Mr}VIvBqrqmY372|yeT~_N%{HNQzqyE05H!FF#rGn literal 0 HcmV?d00001 diff --git a/TEMA6/zapis7.2ob b/TEMA6/zapis7.2ob new file mode 100644 index 0000000000000000000000000000000000000000..eac54adee78b9c02abae0c7754cb193dbce435ef GIT binary patch literal 139 zcmZo*nX1eH0sT`nde|}pGV=3Mr}VIvBqrqmY372|yeT~_N%{HNQzqy&uuKhts*ata z0Yp6l7iL`8bYa7Vy%+Xf*rae_hTar!##D&J{0mzzHeGChNX!RHFo7k6E-bvT