Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

241 строка
6.4 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

# Отчёт по теме 6
Гордиевских Данил А-03-23
## 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
>>> print(gg, fff,sep='/',end='***'); print('____')
Значение температуры = /234.5***____
>>> print()
>>> print(""" Здесь может выводиться
... большой текст,
... занимающий несколько строк""")
Здесь может выводиться
большой текст,
занимающий несколько строк
>>> print("Здесь может выводиться",
... "Большой текст",
... "Занимающий несколько строк")
Здесь может выводиться Большой текст Занимающий несколько строк
```
### 2.3. Вывод с использованием метода write объекта sys.stdout
```py
>>> sys.stdout.write('Функция write')
Функция write13
>>> sys.stdout.write('Функция write\n')
Функция write
14
```
## 3. Ввод данных с клавиатуры
```py
>>> psw=input('Введите пароль от БАРСа:')
Введите пароль от Барса: 1hatechihuahuas!
```
## 4. Ввод-вывод при работе с файлами
### 4.1. Функции для работы с путем к файлу
```py
>>> import os
>>> os.getcwd()
'C:\\Users\\gorda'
>>> os.chdir(r"C:\Users\gorda\YandexDisk\5 семестр\ПОАС\ПО АС\TEMA6")
>>> fil=os.path.abspath("oplata.dbf")
>>> print(fil)
C:\Users\gorda\YandexDisk\5 семестр\ПОАС\ПО АС\TEMA6\oplata.dbf
>>> os.path.isfile(fil)
True
```
### 4.3. Открытие файла для записи или чтения данных
```py
>>> fp=open('zapis1.txt','w')
>>> type()
<class '_io.TextIOWrapper'>
>>> 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']
>>> fp.close()
```
### 4.5. Запись информации в файл с помощью метода write
```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()
```
Содержимое файла приведено ниже
```txt
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10, 11, 12]
```
Запись списка в файл
Попытка 1
```py
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()
```
Попытка 2
```py
>>> gh=open('zapis5.txt','w')
>>> for r in sps3:
... gh.write(r[0]+' '+str(r[1])+'\n')
...
12
12
13
>>> gh.close()
```
Содержимое текстового файла:
```txt
Иванов И. 1
Петров П. 2
Сидоров С. 3
```
### 4.6. Первый способ чтения информации из текстового файла
```py
>>> 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)
['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()
>>> print(stroka1, stroka2)
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10, 11, 12]
```
### 4.9. Ввод-вывод объектов с использованием функций из модуля pickle
Запись
```py
>>> import pickle
>>> mnoz1={'pen','book','pen','iPhone','table','book'}
>>> fp=open('zapis6.mnz','wb')
>>> pickle.dump(mnoz1,fp)
>>> fp.close()
```
Содержимое файла
```py
Ђ# Џ”(ЊiPhone”Њpen”Њtable”Њbook”ђ.
```
Чтение
```py
>>> fp.close()
>>> fp=open('zapis6.mnz','rb')
>>> mnoz2=pickle.load(fp)
>>> fp.close()
>>> print(mnoz2)
{'iPhone', 'pen', 'table', 'book'}
```
## 5. Перенаправление потоков ввода и вывода данных
```py
>>> import sys
>>> vr_out=sys.stdout
>>> fc=open('Stroka.txt','w')
>>> sys.stdout=fc
>>> print('запись строки в файл')
>>> sys.stdout=vr_out
>>> print('запись строки на экран')
запись строки на экран
>>> fc.close()
```
Содержимое файла
```txt
запись строки в файл
```
```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
```