Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- EXPLANATION:
- ROMANIAN: https://neculaifantanaru.com/python-sterge-spatiile-goale-duble-din-tagurile-html.html
- ENGLISH: https://neculaifantanaru.com/en/python-delete-double-empty-spaces-in-html-tags.html
- ----------------------------------
- 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)) #legat de {}, da, este ceva specific Python. Este operatorul de formatare. Practic ce face, este sa introducă tag-ul pe care îl vrei în expresia regulată
- # 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)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement