masowa zmiana danych w plikach docx

0

Witam

mam masę plików docx w które służą jako szablony do podpisywania umów,

wstępnie zrobiłem sobie skrypt do zmiany danych ale danego wyrażenia mi nie zmienia, testowałem inne wyrażenia i skypt mi zmienia podejrzewam że powodem jest to że są spacje. oto mój kod i co jest nie tak?

import os
from docx2 import Document

root_folder = 'sciezka do plików'
search_text = '36 234 200,00'
replace_text = '37 234 200,00'

for root, dirs, files in os.walk(root_folder):
    for file in files:
        file_path = os.path.join(root, file)
        if file_path.endswith('.docx'):
            print(file_path)  # wyświetla ścieżkę każdego przetwarzanego pliku
            document = Document(file_path)
            for paragraph in document.paragraphs:
                for run in paragraph.runs:
                    if search_text in run.text:
                        run.text = run.text.replace(search_text, replace_text)
            document.save(file_path)
        else:
            print(f"Ignorowanie pliku {file_path}. Nie jest to plik .docx")
0
  1. Nie wklejaj kodu jako cytat!
  2. Skoro podejrzewasz, że powodem są spację, to czemu nie zbadałeś tematu? Przecież w Wordzie możesz włączyć widok pokazujący znaki białe.
  3. Jeśli szukanie ma być odporne na takie dolegliwości, użyj wyrażeń regularnych.
0

@uzzo:

To są słabości WYSIWG, grzebanie w formacie końcowym(prezentacyjnym) NIGDY nie będzie satysfakcjonujące.

Hipotetycznie by było - mam świadomość że niełatwo ludzi przekonać - gdyby istniały wersje źródłowe w jakimś lekkim markupie (WikiText, Markdown, a nawet prawie wystarczający by był BBCode, w nim makra {nazwisko} czy {wariant umowy} do podmiany / innych operacji.

A OpenOfice / Word produkowany po wyklinaniu danych, tuż przed drukowaniem

uzzo napisał(a):

Witam

mam masę plików docx

Niech zgadnę: nie masz w nich nijakiej systematyki, prawda ?
Tak prawie zawsze jest, nieliczni maja siłę organizacyjną by to przełamać

1 użytkowników online, w tym zalogowanych: 0, gości: 1