def get_goods_list(): file_path = os.path.abspath(input('Введите путь к файлу:').strip('"\'')) if not os.path.exists(file_path): print('Такого файла нет') logging.error('Нет файла {}'.format(file_path)) elif not os.path.isfile(file_path): print('Зто не файл') logging.error('{} - не файл'.format(file_path)) else: shutil.copy(file_path, 'data') goods_list = GoodInfoList() goods_list.add_from_file(file_path) return goods_list
def main(): parser = argparse.ArgumentParser() parser.add_argument('-rname', default='goods2.info') parser.add_argument('-wname') namespace = parser.parse_args() print('---------------- Проблемы при считывании файла --------------') log_rep.info( '---------------- Проблемы при считывании файла --------------') goods_info_list = GoodInfoList() goods_info_list.read_file(namespace.rname) print('----------------- Вывод информации о товарах ---------------') log_rep.info( '----------------- Вывод информации о товарах ---------------') msg = "Общее количество товаров - {total_count}" \ .format(total_count=len(goods_info_list)) print(msg) log_rep.info(msg) msg = "Средняя цена товара - {average_cost}" \ .format(average_cost=goods_info_list.average_price()) print(msg) log_rep.info(msg) for element in goods_info_list.most_expensive_products(): msg = "Самый дорогой товар - {good_name}, Цена - {good_cost}" \ .format(good_name=element.product_name, good_cost=element.cost_product) print(msg) log_rep.info(msg) for element in goods_info_list.ending_products(): msg = "Заканчивается товар - {good_name}, Осталось - {good_cost}" \ .format(good_name=element.product_name, good_cost=element.cost_product) print(msg) log_rep.info(msg) if namespace.wname: print('---------------- Проблемы при записи файла --------------') log_rep.info( '---------------- Проблемы при записи файла --------------') goods_info_list.write_file(namespace.wname)
def setUp(self): """ setUp function for set data """ with open("config_script.json", "r") as json_data: config_data = json.load(json_data) logging.basicConfig(filename=config_data["filename_logging"], filemode=config_data["filemode_logging"], level=config_data["level_logging"], format=config_data["format_logging"]) self.database = DB_Worker() self.info_list = GoodInfoList() self.file_goods = FileWork() self.file_data = self.file_goods.select_path_file("test") if len(self.file_data) > 0: self.info_list.get_from_file(self.file_data)
# товары с истёкшим сроком годности, метод должен возвращать список товаров GoodInfoList # добавьте возможность получения элемента по ключу good_name в GoodInfoList # изменив метод __getitem__() # если таких элементов несколько верните список GoodInfoList # Добавьте в модуль reporter пример демонстрации новых возможностей программы # Для проверки используйте файл, приложенный к заданию goods2.info # Данные в файле находятся в в формате: # Имя товара:Цена:Количество:Дата поставки:Время хранения(в днях) from good_info import GoodInfoList if __name__ == "__main__": goods_info_list = GoodInfoList() goods_info_list.read_file('goods2_test.info') print('------------------- Содержимое файла -----------------') print(goods_info_list) print() print('Сортировка по name и по убыванию') goods_info_list.sort('name', True) for element in goods_info_list.goods_list: print(element) print() print('Cреднее отклонение для всех цен товаров') print(goods_info_list.get_std())
def setUp(self): self.goods_list = GoodInfoList([]) self.goods_list.add_from_file('goods-test.info')