Ответы пользователя по тегу HTML
  • Как массово переименовать html файлы по содержимому тегов?

    @x_dmitry_x
    # -*- coding: utf-8 -*-
    
    from __future__ import print_function, unicode_literals
    import os
    from lxml import etree
    
    FILES_DIR = 'Путь/До/Папки/С/Файлами'
    
    def main():
        parser = etree.HTMLParser()
        for fname in os.listdir(FILES_DIR):
            path = os.path.join(FILES_DIR, fname)
            tree = etree.parse(path, parser)
            root = tree.getroot()
            el = root.find('.//h3[@class="header-text"]')
            if el is not None:
                header = el.text
                if not header:
                    print(fname, 'Пустой заголовок')
                    continue
                new_fname = header.strip() + '.html'
                new_path = os.path.join(FILES_DIR, new_fname)
                try:
                    os.rename(path, new_path)
                except Exception as e:
                    print(fname, 'Ошибка при переименовании')
                    continue
                print(fname, '-->', new_fname)
            else:
                print(fname, 'Заголовок не найден')
    
    if __name__ == '__main__':
        main()
        raw_input('Enter для закрытия...'.encode('cp866')) # Да, я использую windows :(
    Ответ написан
    Комментировать