И так как решить вопрос: Есть прайс-лист новый И старый Нужно сравнить: 1. Цена с графы D (есть ли в каких-то изменения) 2. Есть ли новый товар, к примеру по графе B (код товара) или же по названию.
Вот для начала сравнение цен: python: from openpyxl import load_workbookfrom pprint import pprintfiles = ['path/price_old.xlsx', 'path/price_new.xlsx']def load_sheets_from_file(file_name): wb = load_workbook(filename=file_name, read_only=True) for s in wb.worksheets: yield sdef load_sheet(sheet): sheet_data = dict() for row in sheet.rows: row_data = dict() if row[1].value: row_data['sku'] = row[1].value row_data['name'] = row[2].value row_data['price'] = row[3].value sheet_data.update({row_data['sku']: row_data}) return sheet_datadef load_data_from_file(file_name): file_data = dict() for sheet in load_sheets_from_file(file_name): file_data.update(load_sheet(sheet)) return file_datadef compare_prices(data_old, data_new): diff = [] for sku, product in data_old.iteritems(): if product['price'] != data_new[sku]['price']: diff.append(data_new[sku]) return diffold_data = load_data_from_file(files[0])new_data = load_data_from_file(files[1])pprint(compare_prices(old_data, new_data)) Если цены у каких-то позиций не совпадают (сопоставление идёт по sku), на выходе должно получиться нечто подобное: python: [{'name': u'Armani Slim Quartz Gold/Black', 'price': 9.0, 'sku': 101.0}, {'name': u'Adidas Log 0927 Yelloy\\White', 'price': 4.5, 'sku': u'1063-0001'}] Цена здесь будет из нового прайса. В files надо вписать путь к старому прайсу и новому. И нужно установить библиотеку openpyxl, которая отвечает за работу с xlsx: Код: pip install openpyxl
И нужно установить библиотеку openpyxl, которая отвечает за работу с xlsx. Где ее брать и как установить? Простой прописки не хватает. Скачал openpyxl-2.4.0-b1.tar, питон в упор не хочет понимать что его надо установить, как не прописывал.
Выше под фразой про установку сразу и написано как (команда для pip). Более простой вариант (но не сильно правильный) - просто распаковать архив с библиотекой в ту же директорию, где лежит файл с программой. Для начала лучше всё же попробовать открыть командную строку винды и вбить туда команду установки через pip. Заодно узнаем, установился ли pip вместе с интерпретатором.
Через командную строку не идет (пип не признает командой) Через питоновскую командную - синтакс ерор, инвалид синтакс.
Нет, это команда именно для командной строки ОС, а не Пайтона. Вообще, я нагуглил сейчас, что начиная с 2.7.9 pip идёт в комплекте с интерпретатором, так что могу предположить, что произошла путаница с тем, что такое командная строка. То поле ввода, которое в меню Пуск - это не командная строка. Командная строка винды вызывается вводом в это поле команды - cmd.
Наверное, установщик не прописал пути в окружение. Что командная строка пишет, если туда вбить просто python?
Тогда идём в Control Panel->System->Advanced System Settings->Environment Variables (переменные окружения или как-то так). Находим там Path, как на скрине: и редактируем его: дописав к уже имеющейся строке это (точка с запятой вначале обызательна): Код: ;C:\Python27\Scripts Надо только проверить, что путь правильный.
Все верно - установилось. Опенкиксл установился. Только внимательно прописывайте папку куда устанавливали питон.
Либо в IDLE, либо в PyCharm. Лучше сразу PyCharm. Только там может тоже быть проблема с путём к интерпретатору. Если будет ругаться, надо и в нём это настроить: File->Settings->Prodject {название проекта}->Prodject Interpreter. И здесь либо выбрать из списка, если он его видит, либо указать путь (и потом он уже будет в списке).