def add_term(self): """ Добавление терминов в terms.db """ db = Database("terms.db") coursers = db.get(["all_terms"]) all_terms = {} for table in coursers: for term, definition in coursers[table]: all_terms[term] = definition ec = "" while ec != "--exit": ec = unicode(raw_input("\nТермин: "), "utf-8") definition = "" is_exit = False if is_exit or ec == "--exit": break if ec in all_terms: print "[Термин существует]: ", all_terms[ec] ec2 = None while ec2 not in ("--exit", ""): ec2 = raw_input("- ") if ec2 == "": break if ec2 == "--exit": is_exit = True else: definition += ec2 + " / " definition = definition[:-3] db.insert("all_terms", [ec, unicode(definition, "utf-8")]) db.commit() db.close_db()
def change_term(self): """ Позволяет изменить значение термина. """ db = Database("terms.db") coursers = db.get(["all_terms"]) all_terms = {} for table in coursers: for term, definition in coursers[table]: all_terms[term] = definition ec = None while ec != "--exit": ec = unicode(raw_input("Термин: "), "utf-8") if ec == "--exit": break elif ec == "": pass else: if ec in all_terms: print "Значение: ", all_terms[ec], "\n" new_definition = raw_input("Новое значение: ") db.delete("all_terms", [ec]) db.insert("all_terms", [ec, unicode(new_definition, "utf-8")]) db.commit() else: print "Термина не существует!\n" db.close_db()
def del_term(self): """ Удаление терминов их terms.db """ db = Database("terms.db") ec = '' while ec != '--exit': ec = raw_input("Термин: ") if ec == '--exit': break db.delete("all_terms", [ec]) db.commit() db.close_db()
def parse_files(self): """ Производит парсинг файлов из директории "input/". Сохраняет результат в БД. """ # словари терминов и фраз по всем файлам all_terms = [] all_phrases = [] # создаёт список файлов files_in_dir = os.listdir(self.input_path) for file_name in files_in_dir: # парсит файл на термины. возврашает список parsed_terms = self.parse_terms(self.input_path + file_name) # парсит файл на фразы parsed_phrases = self.parse_phrases(self.input_path + file_name) # заполняет all_terms из каждого отпарсенного файла for term in parsed_terms: if term not in all_terms: all_terms.append(term) # заполняет all_phrases for phrase in parsed_phrases: # проверку на совпадение фраз не вижу смысла делать all_phrases.append(phrase) #os.remove(self.input_path + file_name) # удаляю термины имеющиеся в useless_terms # возвращает словарь без useless терминов without_useless = self.check_on_useless(all_terms) # таблицы на обновление phrases_objs = { "parsed_phrases": all_phrases, } terms_objs = { "parsed_terms": without_useless, "useless_terms": without_useless } # сохраняет новые термины в таблицу parsed_terms # сохраняет новые фразы в таблицу parsed_phrases # обновляет таблицу useless_terms if all_phrases: db = Database(file_name[:-3] + 'db') db.create_tables(PHRASES_TABLES) for table in phrases_objs: for row in phrases_objs[table]: row = [row] db.insert(table, row) db.commit() db.close_db() if without_useless: db = Database("terms.db") for table in terms_objs: for row in terms_objs[table]: row = [row] db.insert(table, row) db.commit() db.close_db()
""" Выводит меню """ print u"\n\t1. Выход" print u"\t2. Парсинг" print u"\t3. Ручная корректировка и заполнение словарей" print u"\t4. Ручная корректировка и заполнение фраз" print u"\t5. Тестирование по фразам" print u"\t6. *Добавить термин в словарь" print u"\t7. *Удалить термин из словаря" print u"\t8. *Изменить термин" db = Database("terms.db") db.create_tables(TERMS_TABLES) db.close_db() while 1: show_menu() ec = raw_input("\nВведите команду: ") if ec == "1": break elif ec == "2": from parsing import * parsing = Parsing() parsing.parse_files() elif ec == "3": from handinserting import * hi = HandInserting()