Hvad gør afkortning af en fil, når du åbner en fil med indstillingen w + i python?


Bedste svar

Du spørger: Hvad gør afkortning af en fil, når man åbner en fil med indstillingen w + i python?

Afkortering af en fil til nul betyder, at alt dets indhold kasseres: Filstørrelsen bliver 0, så den bliver tom (og dataene er væk), men filen findes stadig på filsystemet.

På UNIX og UNIX-lignende operativsystemer (og generelt på POSIX -kompatible operativsystemer) er der truncate(2) systemopkald, der kan bruges til at kassere en del af eller hele indholdet af en fil (mod slutningen af ​​en fil).

På sådanne systemer kan open(2) systemopkald specificeres som en -flag , der specificerer O\_TRUNC flag, der fortæller, at filindholdet skal afkortes til 0, når det åbnes.

Tilsvarende C-standard I / O-bibliotek funktion fopen() kan angives som en åbningstilstand w+, der angiver, at filen åbnes til skrivning, og at den skal oprettes, hvis den ikke t eksisterer, eller at den skal afkortes til 0, hvis den allerede findes.

Og da open() -funktionen i Python fungerer på samme måde som fopen() -funktion i C, w+ betyder afkortning af filindhold til nul længde, før du skriver noget.

Svar

spørgsmålet har brug for mere afklaring. Hvem laver trunkeringen? Samme python-proces, der åbnede strømmen eller en anden proces? Skriver python-filen til filen, da en anden tråd / proces trunker den? Er den afkortede operation i en loop eller noget?

Svaret på dit spørgsmål afhænger af, hvad der foregår med filen, når disse skrive- og trunkeringshandlinger sker….

Også … protip: se ikke på python2 docs. Se på python3-dokumenter. Og brug python3 generelt

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *