pocitani_znaku

mail@pastecode.io avatar
unknown
python
23 days ago
1.7 kB
2
Indexable
Never
import os
from docx import Document
import re

def pocet_znaku_v_dokumentu(docx_file):
    try:
        doc = Document(docx_file)
    except Exception as e:
        print(f"Chyba při otevírání souboru {docx_file}: {e}")
        return 0
    pocet_znaku = sum(len(para.text) for para in doc.paragraphs)
    for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                pocet_znaku += len(cell.text)
    return pocet_znaku

def seřadit_podle_čísla(s):
    # Vyhledá číslice na začátku názvu souboru a vrátí je jako klíč pro řazení
    match = re.match(r"(\d+)", s)
    if match:
        return int(match.group(1))
    return 0

def projit_adresar_a_spoctit_znaky(adresar):
    celkovy_pocet_znaku = 0
    vysledky = []

    for root, dirs, files in os.walk(adresar):
        for file in files:
            if file.endswith(".docx"):
                plna_cesta = os.path.join(root, file)
                pocet = pocet_znaku_v_dokumentu(plna_cesta)
                vysledky.append(f"{file}: {pocet}")
                celkovy_pocet_znaku += pocet

    # Seřazení výsledků podle čísla na začátku názvu souboru
    vysledky = sorted(vysledky, key=lambda x: seřadit_podle_čísla(x.split(":")[0]))

    with open("vysledky_poctu_znaku.txt", "w", encoding="utf-8") as vysledky_soubor:
        for radek in vysledky:
            vysledky_soubor.write(radek + "\n")
        vysledky_soubor.write(f"Celkový počet znaků: {celkovy_pocet_znaku}")

    print("Výsledky byly seřazeny a zapsány do souboru 'vysledky_poctu_znaku.txt'.")

# Nastavte cestu k adresáři, který chcete prozkoumat
adresar = 'cesta_k_adresari'
projit_adresar_a_spoctit_znaky(adresar)
Leave a Comment