Hva gjør avkorting av en fil når du åpner en fil med alternativet w + i python?


Beste svaret

Du spør: Hva gjør avkorting av en fil når du åpner en fil med w + -alternativet i python?

Avkorting av en fil til null betyr at du forkaster alt innholdet: filstørrelsen blir 0, så den blir tom (og dataene er borte), men filen eksisterer fortsatt på filsystemet.

På UNIX- og UNIX-lignende operativsystemer (og generelt på POSIX -kompatible operativsystemer) er det truncate(2) systemanrop som kan brukes til å forkaste deler av eller hele innholdet i en fil (mot slutten av en fil).

På slike systemer kan open(2) systemanrop spesifiseres som en flagg -parameter som spesifiserer O\_TRUNC flagg som forteller at filinnholdet skal avkortes til 0 når det åpnes.

Tilsvarende C-standard I / O-bibliotek funksjon fopen() kan spesifiseres som en åpningsmodus w+ som indikerer at filen åpnes for skriving og at den skal opprettes hvis den ikke ikke eksisterer, eller at den skal avkortes til 0 hvis den allerede eksisterer.

Og siden open() -funksjonen i Python fungerer på samme måte som fopen() -funksjon i C, w+ betyr avkorting av filinnhold til null lengde før du skriver noe.

Svar

spørsmålet trenger mer avklaring. Hvem gjør avkuttingen? Samme python-prosess som åpnet strømmen eller en annen prosess? Skriver python-filen til filen mens en annen tråd / prosess avkorter den? Skjer den avkuttede operasjonen i en løkke eller noe?

Svaret på spørsmålet ditt avhenger av hva som skjer med filen når disse skrive- og avkuttingsoperasjonene skjer….

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *