CCCPaste

Parse html file

import re
import docx
import codecs


def find_table_title(line):
    result = re.search(r'(?<=)\w+', line)
    if result:
        return result.group(0)


def find_table_sub_title(line):
    result = re.search(r'(?<=)\w+', line)
    if result:
        return result.group(0)


def find_type_return(line):
    result = re.search(r'(?<=)\w+', line)
    if result:
        return result.group(0)


def find_name_function(line):
    result = re.search(r'\w+', line)
    if result:
        return result.group(0)


def find_description_function(line):
    result = re.search(r'(?<=

)[\w+\s]+', line) if result: return result.group(0) def find_args(line): type_arg = re.findall(r'(?<=)\w+', line) name_arg = re.findall(r'(?<= )\w+', line) result = dict() for key, value in zip(type_arg, name_arg): result[key] = value if type_arg: return result doc = docx.Document() style = doc.styles['Normal'] style.font.size = docx.shared.Pt(14) with codecs.open('function_list.htm', "r", "utf-16") as file: with open('function_list_to_github.txt', 'w') as file_write: for line in file: if find_table_title(line): doc.add_paragraph(find_table_title(line), style='Title') file_write.write(f'# {find_table_title(line)}\n') elif find_table_sub_title(line): doc.add_paragraph(find_table_sub_title(line), style='Title') file_write.write(f'# {find_table_sub_title(line)}\n') elif find_type_return(line): next_line = file.readline() paragraph = doc.add_paragraph() paragraph.add_run(f'{find_type_return(line)} ').italic = True paragraph.add_run(find_name_function(next_line)).bold = True file_write.write(f'## {find_type_return(line)} {find_name_function(next_line)}\n\n') dict_args = find_args(next_line) file_write.write('Type | Name\n') file_write.write('------ | ------\n') if dict_args: for key, value in dict_args.items(): file_write.write(f'{key} | {value}\n') doc.add_paragraph(f'Тип аргумента: {key}, имя аргумента: {value}', style='List Bullet') file_write.write('\n') elif find_description_function(line): doc.add_paragraph(find_description_function(line)) file_write.write(f'{find_description_function(line)}\n') doc.save('function_list.docx')