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