Робота з файлами та обробка винятків

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Кібербезпека
Кафедра:
Захист інформації

Інформація про роботу

Рік:
2020
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування скриптовими мовами
Варіант:
23 24

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра ЗІ
З В І Т до лабораторної роботи 8 з курсу: «Програмування скриптовими мовами» на тему: «Робота з файлами та обробка винятків»
Варіант 23
Львів – 2020 МЕТА РОБОТИ Ознайомитись з роботою з файлами та обробкою виключень у мові Python. ЗАВДАННЯ Домашня підготовка до роботи Вивчити теоретичний матеріал. Виконати в лабораторії 1. Програму з лабораторної роботи 7 доповнити таким чином, щоб список при
запуску
програми
завантажувався
з
текстового
файлу,
а
при
виході зберігався у текстовий файл. Додати пункти меню і відповідні функції для таких операцій: “Зберегти список у текстовий файл”, “Зберегти список у файл як об’єкт”, “Завантажити список з текстового файлу”, “Завантажити список як об’єкт” 2. Доповнити програму з пункту 1 обробкою винятків, що виникають при
неправильно
введених
даних,
неправильно
заданих
індексах
елементів,
файлових
помилках.
Програма
повинна
коректно
працювати
при
будь-яких діях користувача.
РЕЗУЛЬТАТ ВИКОНАННЯ РОБОТИ 1. Лістинг програми. import mathimport pickleimport json
def navBar():
print('a. Вивести весь список.n'
'b. Додавати елементи до списку.n'
'c. Відсортувати список за заданим атрибутом.n'
'd. Видаляти елементи за заданим атрибутом.n'
'e. Видаляти елемент за заданим індексом.n'
'f. Виводити всі елементи за заданим атрибутом.n'
'g. Зберегти як об'єкт.n'
'h. Відкрити як об'єкт.n'
'k. Create default.n'
'i. Зберегти у файл. n'
'o. Відкрити з файлу. n'
's. Stop.n')
while True:
value = input('Enter: ')
if test(['a', 'A', 'b', 'B', 'C', 'c', 'd', 'D', 'E', 'e', 'F', 'f', 's', 'S', 'g', 'G','h','H','k','K', 'i', 'I', 'O', 'o',], value):
return value.upper()
else:
print("Try again")
def test(arr, value):
for ac in arr:
if ac == value:
return True
return False
def qprintArr(arr):
for el in range(len(arr)):
for i in range(len(arr[el])):
print(arr[el][i])
print('---------')
def addAc(arr):
try:
mf = str(input('Manufacturer: '))
model = str(input('Model: '))
year = int(input('Year: '))
np = int(input('Number of passengers: '))
speed = str(input('Max speed: '))
except ValueError:
print('Неправильне значення')
return [mf, model, year, np, speed]
def arrSort(arr, atr):
arr.sort(key=lambda i: i[atr])
return arr
def surchAcByAtr(arr, atr):
elements = []
index = []
for el in range(len(arr)):
for i in range(len(arr[el])):
if str(arr[el][i]) == atr:
elements.append(arr[el])
index.append(el)
break
return [elements,index]
def delByIndex(arr, ind):
calibration = 0
for i in ind:
del arr[i - calibration]
calibration += 1
return arr
def saveAsFile(obj):
with open("air.txt", "w", encoding = "utf-8") as f:
json.dump(aircraft, f, ensure_ascii=False)
print('Complete')
def openAsFile():
with open('air.txt', 'rb') as f:
newObj = json.load(f)
print('Complete')
return newObj
def saveAsObj(obj):
with open('aircraft', 'wb') as file:
pickle.dump(aircraft, file)
print('Complete')
def createDef():
defaultArr = [
['Embraer','Embraer 190','2000',106, '871 km/h'],
['ДП Антонов','АН-148','2009',85, '870 km/h'],
['Boeing','747','1969',452, '892 km/h'],
['Саратовський авіазавод','ЯК-40','1966',40, '546 km/h'],
['ДП Антонов','АН-158','2010',83, '870 km/h'],
]
with open('aircraft.txt', 'wb') as f:
pickle.dump(defaultArr, f)
print('Complete')
return defaultArr
def openAsObj():
with open('aircraft.txt', 'rb') as f:
newObj = pickle.load(f)
print('Complete')
return newObj
while True:
value = navBar()
if value == 'A':
try:
qprintArr(aircraft)
except NameError:
print('!Список відсутній!')
input("Press Enter to continue...")
elif value == 'B':
try:
aircraft.append(addAc(aircraft))
except NameError:
print('Створення нового файлу...')
aircraft = []
saveAsObj(aircraft)
aircraft.append(addAc(aircraft))
input("Press Enter to continue...")
elif value == 'C':
w = int(input('Sort By n1:Manufacturern2:Modeln3:Yearn4:Nubmer of passengersn5:Max speedn'))
try:
qprintArr(arrSort(aircraft, w-1))
except NameError:
print('!Список відсутній!')
input("Press Enter to continue...")
elif value == 'D':
atr = input('Entry atr for del: ')
try:
arr = delByIndex(aircraft, surchAcByAtr(aircraft, atr)[1])
qprintArr(arr)
except NameError:
print('!Список відсутній!')
input("Press Enter to continue...")
elif value == 'E':
atr = int(input('Entry index for del: '))
try:
arr = delByIndex(aircraft, [atr])
qprintArr(arr)
except IndexError:
print('!Неправильне значення індекса!')
input("Press Enter to continue...")
elif value == 'F':
atr = input('Entry atr for print: ')
try:
qprintArr(surchAcByAtr(aircraft, atr)[0])
except NameError:
print('!Список відсутній!')
input("Press Enter to continue...")
elif value == 'G':
try:
saveAsObj(aircraft)
except NameError:
print('!Список відсутній!')
input("Press Enter to continue...")
elif value == 'H':
try:
aircraft = openAsObj()
except FileNotFoundError:
print('!Файл не знайдено!')
input("Press Enter to continue...")
elif value == 'K':
aircraft = createDef()
input("Press Enter to continue...")
elif value == 'I':
saveAsFile(aircraft)
input("Press Enter to continue...")
elif value == 'O':
aircraft = openAsFile()
input("Press Enter to continue...")
elif value == 'S':
break
2. Результат роботи програми. / / / / / / / / / / /
ВИСНОВОК В процесі виконання лабораторної роботи я ознайомилась з роботою з файлами та обробкою виключень у мові Python.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Новини