Atomaire vervanging van UTF-8-bestanden
Vervang een UTF-8-bestand via een tijdelijk bestand in dezelfde map.
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)Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Project
Test lege tekst, Unicode en een vervangingsfout, sluit het tijdelijke bestand vóór vervanging en verwijder resten terwijl het oude bestand bij die fout behouden blijft.
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)Beoordeel wat behouden blijft als een bestandsupdate mislukt
Replacent is een programmeeromgeving voor Windows waarin je met een AI-model nadenkt over wijzigingen aan bestanden op schijf. Begin met de projectcode en leg uit wat moet blijven bestaan als een update niet kan worden voltooid. Vraag de assistent voorbereiding, schrijven, vervanging en opruimen als één samenhangende handeling te onderzoeken. Het doel is een voorstel waarvan je het foutgedrag kunt beschrijven voordat je het op waardevolle gegevens probeert.
Het voorbeeld replace_utf8.py biedt een taak met een tijdelijk bestand en vervanging van het doelbestand. Je kunt de assistent vragen na te gaan wanneer codering plaatsvindt, waar tijdelijke uitvoer wordt geplaatst en welke opruimacties na een uitzondering worden uitgevoerd. Inspecteer de werkelijke code en doelomgeving; neem niet aan dat één vervangingsaanroep alle duurzaamheidseigenschappen waarborgt die je toepassing nodig kan hebben.
Test de aangepaste handeling in een wegwerpmap. Controleer na zowel succes als gecontroleerde fouten de inhoud van het doelbestand en achtergebleven bestanden. Houd de waarnemingen in het gesprek, zodat verdere wijzigingen aantoonbaar gedrag aanpakken. Replacent accepteert ondersteunde OpenAI-compatibele of Anthropic-verbindingen, met inloggegevens waar nodig. Als daar een ongefilterd model beschikbaar is, kun je het voor het gesprek kiezen; contextlimieten, tools en antwoordbeperkingen blijven afhankelijk van model en server. Je projectcontroles leveren het bewijs dat de bestandsupdate aan de afspraken voldoet.
Vragen over vervangen en opruimen
- Wat moet een verzoek om een bestandsupdate specificeren?
Beschrijf de verwachte inhoud na succes, wat na een fout behouden moet blijven en of bestaande bestanden mogen worden vervangen. Vermeld de doelomgeving en vereiste codering, zodat het voorstel aan concrete eindvoorwaarden kan worden getoetst.
- Is vervanging hetzelfde als duurzame opslag?
Ga daar niet van uit. Duurzaamheidseisen hangen af van de volledige implementatie en omgeving. Als gegevens een crash moeten overleven, vermeld dat afzonderlijk en beoordeel het relevante gedrag in plaats van het af te leiden uit een patroon met tijdelijke bestanden.
- Hoe kan ik het opruimgedrag onderzoeken?
Gebruik wegwerpbestanden en gecontroleerde foutgevallen die bij je project passen. Controleer achteraf zowel het oorspronkelijke doelbestand als eventuele tijdelijke uitvoer. Lees ook het uitzonderingspad: een geslaagde uitvoering test het opruimen na een onderbroken handeling niet.
- Mogen opruimfouten de oorspronkelijke fout verbergen?
Bepaal welk foutmeldingsgedrag de aanroepende code nodig heeft. Onderzoek of opruimen een andere uitzondering kan veroorzaken die het oorspronkelijke probleem verbergt. Test dat pad waar praktisch mogelijk voordat je een wijziging aan de handeling accepteert.
Replacent · Bijgewerkt 2026-10-25