Полный код можно просмотреть здесь: https://pastebin.com/e2vY70di
Установите Python.
Код Python находит все html-теги, которые содержат двойные пробелы между словами, и оставляет между словами один пробел.
Он также удалит все пустые места в начале и конце каждой строки, содержащейся в тегах html. Я учел только теги <p>..</p> si <p><em>..</em></p>
<p class="obisnuit"><em> Honor your moral and spiritual obligations .</em></p> <p class="nint"> Bishop knew how to say the most meaningful of things speech. </p>
Станет:
<p class="obisnuit"><em>Honor your moral and spiritual obligations.</em></p> <p class="nint">Bishop knew how to say the most meaningful of things speech.</p>
КОД: скопируйте и запустите приведенный ниже код в любой программе-интерпретаторе (я использую pyScripter) . Не забудьте изменить путь в файле "directory_name =" линия.
import re import os def read_text_from_file(file_path): """ Aceasta functie returneaza continutul unui fisier. file_path: calea catre fisierul din care vrei sa citesti """ with open(file_path, encoding='utf8') as f: text = f.read() return text def write_to_file(text, file_path): """ Aceasta functie scrie un text intr-un fisier. text: textul pe care vrei sa il scrii file_path: calea catre fisierul in care vrei sa scrii """ with open(file_path, 'wb') as f: f.write(text.encode('utf8', 'ignore')) def replace_white_spaces(tag_name, file_path): """ Aceasta functie modifica textul dintre un tag dat ca argument. """ # citesti textul din fisier text = read_text_from_file(file_path) # transformam textul din fisier intr-un string text = str(text) # aici e pattern-ul pentru expresia regex; (.*?) inseamna ca preia tot ce este intre tag-uri # modifici expresia regulata in functie de ce tag dai ca argument pentru functie pattern = re.compile('<{} class=\".*?\">(.*?)</{}>'.format(tag_name, tag_name)) # aici se preiau toate textele dintre tag-uri tag_texts = re.findall(pattern, text) for tag_text in tag_texts: # strip taie toate spatiile de la inceputul si finalul text-ului new_text = tag_text.strip() m = re.findall('<em>(.*?)</em>', new_text) if len(m) >= 1: text_em = str(m[0]) text_em_new = text_em.strip() new_text = new_text.replace(text_em, text_em_new) # facem split la text dupa spatiu si apoi unim cuvintele gasite printr-un singur spatiu new_text = " ".join(new_text.split()) # textul nou va fi textul initial, dar care are textul dintre tag-uri inlocuit cu textul prelucrat text = text.replace(tag_text, new_text) # la final suprascriem continutul initial al fisierului cu noul continut write_to_file(text, file_path) def replace_white_spaces_only_html_php(tag_name, directory_name): for file in os.listdir(directory_name): filename = str(file) print(filename) # verificam daca fisierul se termina cu extensia html sau php if filename.endswith(".html") or filename.endswith(".php"): file_path = os.path.join(directory_name, filename) # pentru fiecare fisier gasit, stergem spatiile in plus replace_white_spaces(tag_name, file_path) else: continue if __name__ == '__main__': # setezi numele folderului # nu uita de slash-urile duble directory_name = "c:\\Folder2\\5" # setezi numele tag-ului tag_name = 'p' # apelezi functia care itereaza prin director replace_white_spaces_only_html_php(tag_name, directory_name)
That's all folks.
If you like my code, then make me a favor: translate your website into Romanian, "ro".
Также ознакомьтесь с этой ВЕРСИЕЙ 2 или ВЕРСИЯ 3 или ВЕРСИЯ 4 или ВЕРСИЯ 5 или ВЕРСИЯ 6 или ВЕРСИЯ 7