#Отчет по теме 6 Савин Семён, А-02-23 ## Пункт 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' >>> while True: znach = float(input('Задайте коэф. усиления = ')) if znach < 17.5 or znach > 23.8: print('Ошибка') else: break Задайте коэф. усиления = 50 Ошибка Задайте коэф. усиления = 14 Ошибка Задайте коэф. усиления = 21 >>> znach 21.0 >>> import math >>> print(eval(input('введите выражение для расчёта = '))) введите выражение для расчёта = math.log10(23/(1+math.exp(-3.24))) 1.34504378689765 ``` ## Пункт 4. ## Пункт 4.1. Модуль os, работа с путями ```py >>> import os >>> os.chdir ('C:/Users/somas/python-labs/TEMA6') >>> os.getcwd() 'C:\\Users\\somas\\python-labs\\TEMA6' >>> savin = os.getcwd() >>> savin 'C:\\Users\\somas\\python-labs\\TEMA6' >>> print(savin) C:\Users\somas\python-labs\TEMA6 >>> os.mkdir("C:/Users/somas/python-labs/TEMA6/TEST") >>> os.listdir("C:/Users/somas/python-labs/TEMA6") ['.gitkeep', 'img1.png', 'report.md', 'TEST'] >>> os.path.isdir("C:/Users/somas/python-labs/TEMA6") True >>> os.path.isdir("C:/Users/somas/python-labs/TEMA") False >>> os.rmdir("C:/Users/somas/python-labs/TEMA6/TEST") >>> os.listdir("C:/Users/somas/python-labs/TEMA6") ['.gitkeep', 'img1.png', 'report.md'] >>> head, tail = os.path.split(savin) >>> print(head) C:\Users\somas\python-labs >>> print(tail) TEMA6 >>> os.path.exists("U:/Blasphemous 2") True >>> os.path.exists("U:/NONE") False ``` ![Скриншот созданной папки TEST](img1.png) ## Пункт 4.2 - 4.4. Изучение процесса работы с файлом, изучение функций открытия и закрытия файла. ```py >>> drk = ("C:/Users/somas/python-labs/TEMA6") >>> fp = open(file=drk+'/zapis1.txt', mode = 'w') >>> dir(fp) ['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__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'] >>> fp1 = open('zapis2.bin', mode='wb+') >>> fp.close() ``` ## Пункт 4.5. Запись данных в файл ```py >>> sps = list(range(1,13)) >>> 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() >>> fp3.close() >>> 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() >>> gh = open('zapis5.txt', 'w') >>> for r in sps3: gh.write(r[0] + ' ' + str(r[1]) + '\n') 12 12 13 >>> gh.close() >>> gh=open('zapis5.txt','w') >>> for r in sps3: gh.write(r[0]+' '+str(r[1])+'\n') ``` ![Скриншот содержания файла zapis3](img2.png) ![Скриншот содержания файла zapis4](img3.png) ![Скриншот содержания файла zapis5](img4.png) ## Пункт 4.6. Способ чтения данных из файла ```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'] >>> sps [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; stroka2 '[1, 2, 3, 4]' '\n[5, 6, 7, 8]\n[9, 10, 11, 12]\n' ``` ## Пункт 4.8. Чтение данных через readline и readlines ```py >>> strokatest = fp.readline() >>> strokatest '[1, 2, 3, 4]\n' >>> for line in fp: print(line.rstrip()) [5, 6, 7, 8] [9, 10, 11, 12] >>> strokatest2 = fp.readlines() >>> strokatest2 [] >>> fp.close() >>> fp = open('zapis3.txt') >>> strokatest2 = fp.readlines() >>> strokatest2 ['[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) >>> fp.close() >>> fp = open('zapis6.mnz', 'rb') >>> mnoz2 = pickle.load(fp) >>> fp.close() >>> mnoz2 {'iPhone', 'book', 'pen', 'table'} >>> 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', 'book', 'pen', '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() >>> 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 ``` ![Скриншот содержания файла Stroka](img5.png)