def test_save_pickle_on_big_data(self): data = [a for a in range(30000)] data += ['hello {}'.format(a) for a in range(30000)] db.pickle_dump(self.data_car, self.path) data2 = db.pickle_load(self.path) self.assertEqual(data, data2)
def search_by_name(data, path): data = db.pickle_load(path) try: search_by_name = int(input("Для поиска по имени целиком введите 1\nДля поиска по части имени введите 2\n")) if search_by_name == 1: a = input('Введите марку автомобиля: ') a = a.strip() if a in data: print ('\nНайдены следующие машины: ') s = '{} (мощность - {})' print(s.format(a, data[a])) if search_by_name == 2: i = input('Введите часть названия: ') i = i.strip() for a in data: if i in a: print ('\nНайдены следующие машины: ') s = '{} (мощность - {})' print(s.format(a, data[a])) except ValueError: print ('Введено неверное значение (используйте цифры 1 или 2)')
def test_save_pickle_test(self): self.assertFalse(os.path.exists(self.path)) db.pickle_dump(self.path, self.data_car) self.assertTrue(os.path.exists(self.path)) data_car2 = db.pickle_load(self.path) self.assertEqual(self.data_car, data_car2)
def new_main_prog(path, new_path, new_menu_item): data = db.pickle_load(path) new_data = db.new_pickle_load(new_path) while new_menu_item != '0': if new_menu_item == '1': db.create_new_data(data, path, new_path, new_data) elif new_menu_item == '2': debug.new_func_output(new_data, new_path) elif new_menu_item == '3': db.car_move(new_data, new_path) new_menu_item = new_main_menu()
def main_prog(path, menu_item): data = db.pickle_load(path) while menu_item != '0': if menu_item == '1': db.data_input(data, path) elif menu_item == '2': debug.func_output(data, path) elif menu_item == '3': search_by_name(data, path) elif menu_item == '4': search_by_power(data, path) elif menu_item == '5': edit_elements(data, path) menu_item = main_menu()
def search_by_power(data, path): data = db.pickle_load(path) try: search_by_power = int(input("Для поиска по одному значению мощности введите 1\nДля поиска в промежутке между двумя значениями нажмите 2\n")) if search_by_power == 1: power = int(input('Введите значение мощности: ')) lst = [] lst_lower = [] lst_higher = [] for i in data: data[i] = int(data[i]) if data[i] == power: lst.append([i, data [i]]) elif data[i] < power: lst_lower.append([i, data [i]]) elif data[i] > power: lst_higher.append([i, data [i]]) print('Автомобили с мощностью равной введенной:', lst) print('Автомобили с мощностью меньше введенной:', lst_lower) print('Автомобили с мощностью выше введенной:', lst_higher) if search_by_power == 2: lst_low_up = [] power_lower = int(input('Введите нижнее значение мощности: ')) power_higher = int(input('Введите верхнее значение мощности: ')) for i in data: if power_lower <= int( data[i] ) <= power_higher: lst_low_up.append([i, data[i]]) if lst_low_up != []: s = 'В промежутке между {} и {} находятся следующие машины: \n' print(s.format(power_lower, power_higher), lst_low_up) else: print('В заданном промежутке нет ни одной машины') except ValueError: print ('Введено неверное значение (используйте цифры 1 или 2)')
def edit_elements(data, path): data = db.pickle_load(path) action = input('\nЧтобы редактировать данные, введите 1\nЧтобы удалить автомобиль, нажмите 2\n') if action == '1': r = input('Введите название автомобиля, который хотите отредактировать: \n') for i in data: if r == i: data.pop(r) new_car = input('Введите новое название: ') new_power = input('Введите мощность: ') data [new_car] = new_power break if action == '2': r = input('Введите название автомобиля, который хотите удалить: \n') for i in data: if r == i: data.pop(r) break db.pickle_save(data, path)
import db flnm = 'cars.pickle' allcars = db.pickle_load(flnm) values_list=[] # этот кусок кода - для фильтрации и поиска keys_list=[] if len(allcars) != 0: try: for keys,values in allcars.items(): values_list.append(values) keys_list.append(keys) except: print ('Что-то пошло не так') if __name__ == "__main__": import db, debug import pickle, sys, os while True: wtd=db.in_out('Поиск или Работа с данным?:') if wtd == 'Работа' or wtd == 'работа' or wtd == 'Работа с данными' or wtd == 'работа с данными': data = debug.proverka(debug.cycle) break elif wtd == 'Поиск' or wtd == 'поиск': debug.s_earch() else: print ('Ошибка, попробуйте еще раз')