Atomická náhrada souborů UTF-8
Nahraď soubor UTF-8 pomocí dočasného souboru ve stejném adresáři.
import os
from pathlib import Path
from tempfile import NamedTemporaryFile
def replace_utf8(path, text):
if not isinstance(path, (str, Path)) or type(text) is not str:
raise ValueError("replace.input")
target, data = Path(path), text.encode("utf-8")
temporary = None
try:
with NamedTemporaryFile(dir=target.parent, prefix=".swap-", delete=False) as out:
temporary = Path(out.name)
out.write(data)
os.replace(temporary, target)
finally:
if temporary is not None:
temporary.unlink(missing_ok=True)Před použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
Projekt
Ověř prázdný text, Unicode a chybu nahrazení, před záměnou zavři dočasný soubor a odstraň zbytky při zachování starého souboru v případě této chyby.
import os
from pathlib import Path
from tempfile import NamedTemporaryFile
def replace_utf8(path, text):
if not isinstance(path, (str, Path)) or type(text) is not str:
raise ValueError("replace.input")
target, data = Path(path), text.encode("utf-8")
temporary = None
try:
with NamedTemporaryFile(dir=target.parent, prefix=".swap-", delete=False) as out:
temporary = Path(out.name)
out.write(data)
os.replace(temporary, target)
finally:
if temporary is not None:
temporary.unlink(missing_ok=True)Prověřte, co zůstane po selhání aktualizace souboru
Replacent je programovací prostředí pro Windows, v němž pomocí modelu AI posuzujete změny ovlivňující soubory na disku. Začněte kódem projektu a vysvětlete, co má zůstat, pokud aktualizaci nelze dokončit. Požádejte asistenta, aby prověřil přípravu, zápis, nahrazení a úklid jako propojenou operaci. Cílem je návrh, jehož chování při selhání dokážete popsat ještě před vyzkoušením na užitečných datech.
Příklad replace_utf8.py nabízí úlohu s dočasným souborem a nahrazením cíle. Můžete asistenta požádat, aby prověřil, kdy probíhá kódování, kam se ukládá dočasný výstup a jaký úklid se provede po výjimce. Prověřte skutečný kód a cílové prostředí; nepředpokládejte, že jediné volání nahrazení zajišťuje všechny vlastnosti trvalého uložení, které může vaše aplikace potřebovat.
Upravenou operaci testujte v postradatelném adresáři a po úspěchu i řízených selháních kontrolujte obsah cíle a zbývající soubory. Pozorování ponechte v konverzaci, aby další úpravy řešily doložené chování. Replacent přijímá podporovaná připojení kompatibilní s OpenAI nebo připojení Anthropic s přihlašovacími údaji podle potřeby. Je-li tam dostupný nefiltrovaný model, můžete jej pro diskusi zvolit; limity kontextu, nástroje a omezení odpovědí stále závisejí na modelu a serveru. Důkazem splnění podmínek aktualizace souboru zůstávají kontroly vašeho projektu.
Otázky k nahrazování a úklidu
- Co má požadavek na aktualizaci souboru upřesnit?
Popište očekávaný obsah cíle po úspěchu, co musí zůstat po selhání a zda lze existující soubory nahradit. Uveďte cílové prostředí a požadované kódování, aby bylo možné návrh posoudit podle konkrétních následných podmínek.
- Je nahrazení totéž co trvalé uložení?
Nepředpokládejte to. Požadavky na trvalost závisejí na celé implementaci a prostředí. Pokud je důležité zachování dat při pádu, uveďte to samostatně a prověřte příslušné chování místo jeho odvozování ze vzoru s dočasným souborem.
- Jak mohu prověřit chování úklidu?
Použijte postradatelné soubory a řízená selhání vhodná pro váš projekt. Poté zkontrolujte původní cíl i dočasný výstup. Přečtěte také větev zpracování výjimky, protože úspěšný běh neprověří úklid po přerušené operaci.
- Mají chyby úklidu zakrýt původní selhání?
Určete, jaké hlášení chyb potřebuje volající kód. Prověřte, zda úklid může vyvolat další výjimku a zastřít původní problém, a před přijetím úpravy operace tuto větev podle možností otestujte.
Replacent · Aktualizováno 2026-10-25