Skip to content

Instantly share code, notes, and snippets.

@me-suzy
Created July 3, 2024 13:28
Show Gist options
  • Save me-suzy/82a67fcbeac70e54c8bc31d82009526a to your computer and use it in GitHub Desktop.
Save me-suzy/82a67fcbeac70e54c8bc31d82009526a to your computer and use it in GitHub Desktop.
inlocuire categorii
import os
import json
import re
# Calea către folderul cu fișierele HTML
folder_path = r'e:\Carte\BB\17 - Site Leadership\Principal 2022\en'
# Calea către fișierul categorii.json
json_file_path = os.path.join(folder_path, 'categorii.json')
# Deschide fișierul categorii.json și încarcă conținutul
with open(json_file_path, 'r') as json_file:
data = json.load(json_file)
# Creează un dicționar pentru a accesa rapid datele din categorii.json
data_dict = {entry['html_file']: entry['line_count'] for entry in data}
# Iterează prin fiecare fișier HTML din folder
for filename in os.listdir(folder_path):
if filename.endswith('.html'):
file_path = os.path.join(folder_path, filename)
try:
# Deschide fișierul HTML și citește conținutul
with open(file_path, 'r') as html_file:
content = html_file.read()
# Extrage fiecare link și număr de linie din secțiunea <div class="categories-name">
links_and_line_counts = re.findall(r'<div class="categories-name">\s*<a href="([\s\S]*?)" title="[\s\S]*?<span>(\d+)</span>', content)
# Iterează prin fiecare link și înlocuiește numărul cu cel corespunzător din categorii.json
for href, line_count in links_and_line_counts:
html_file = os.path.basename(href)
if html_file in data_dict:
content = re.sub(rf'(<div class="categories-name">\s*<a href="{re.escape(href)}" title="[\s\S]*?<span>)\d+(</span>)', rf'\g<1>{data_dict[html_file]}</span>', content)
# Actualizează conținutul în fișierul HTML
with open(file_path, 'w') as updated_html_file:
updated_html_file.write(content)
# Afișează numele fișierului modificat
print(f"Modified file: {filename}")
except Exception as e:
print(f"Error processing file: {filename}")
print(str(e))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment