Created
October 5, 2025 06:57
-
-
Save me-suzy/b12f31c4fdae62cfcce73f99d2078b4d to your computer and use it in GitHub Desktop.
de comparat doua fisiere.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import re | |
def extract_volume_identifier(line: str) -> str: | |
"""Extrage identificatorul unic al volumului din linie.""" | |
# Simplificat: folosește linia completă (trimmed) ca identificator unic | |
# Aceasta va capta și diferențele de ordine între Seria A și Seria B | |
return line.strip() | |
def compare_files(): | |
base_dir = r"e:\Carte\BB\17 - Site Leadership\alte\Ionel Balauta\Aryeht\Task 1 - Traduce tot site-ul\Doar Google Web\Andreea\Meditatii\2023\Compara 2 fisiere txt si arata diferentele de linii care exista in unul, dar nu si in celalalt" | |
fisier_baza = f"{base_dir}\\Fisier de baza.txt" | |
fisier_comparat = f"{base_dir}\\Fisier de comparat.txt" | |
fisier_output = f"{base_dir}\\output.txt" | |
try: | |
# Citește volumele din baza | |
volumes_base = set() | |
with open(fisier_baza, 'r', encoding='utf-8') as f: | |
for line in f: | |
if line.strip(): | |
volumes_base.add(line.strip()) | |
# Citește volumele din comparat | |
volumes_comparat = set() | |
with open(fisier_comparat, 'r', encoding='utf-8') as f: | |
for line in f: | |
if line.strip(): | |
volumes_comparat.add(line.strip()) | |
# Găsește diferențele | |
doar_in_baza = volumes_base - volumes_comparat | |
doar_in_comparat = volumes_comparat - volumes_base | |
# Sortează pentru afișare | |
doar_in_baza_sorted = sorted(doar_in_baza) | |
doar_in_comparat_sorted = sorted(doar_in_comparat) | |
print(f"Volumele din baza: {len(volumes_base)}") | |
print(f"Volumele din comparat: {len(volumes_comparat)}") | |
print(f"Doar in baza: {len(doar_in_baza)}") | |
print(f"Doar in comparat (lipsesc din baza): {len(doar_in_comparat)}") | |
# Scrie rezultatul | |
with open(fisier_output, 'w', encoding='utf-8') as f: | |
f.write("RAPORT COMPARATIE VOLUME\n") | |
f.write("=" * 50 + "\n\n") | |
f.write(f"Volume in baza: {len(volumes_base)}\n") | |
f.write(f"Volume in comparat: {len(volumes_comparat)}\n") | |
f.write(f"Doar in baza: {len(doar_in_baza)}\n") | |
f.write(f"Lipsesc din baza: {len(doar_in_comparat)}\n\n") | |
if doar_in_baza_sorted: | |
f.write("VOLUME CARE EXISTA DOAR IN BAZA:\n") | |
f.write("-" * 40 + "\n") | |
for vol in doar_in_baza_sorted: | |
f.write(f"{vol}\n") | |
f.write("\n") | |
if doar_in_comparat_sorted: | |
f.write("VOLUME CARE LIPSESC DIN BAZA:\n") | |
f.write("-" * 40 + "\n") | |
for vol in doar_in_comparat_sorted: | |
f.write(f"{vol}\n") | |
f.write("\n") | |
# Format Total Commander pentru volumele lipsă | |
f.write("FORMAT TOTAL COMMANDER (volume lipsă):\n") | |
f.write("-" * 40 + "\n") | |
transformed = [f'"*{line}*"' for line in doar_in_comparat_sorted] | |
formatted = ";".join(transformed) + ";" | |
f.write(formatted + "\n") | |
print("\nRaport generat cu succes!") | |
return True | |
except Exception as e: | |
print(f"EROARE: {str(e)}") | |
return False | |
if __name__ == "__main__": | |
compare_files() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment