Mit csinál a fájl csonkolása, amikor megnyit egy fájlt a w + opcióval a pythonban?


Legjobb válasz

Megkérdezi: Mit csinál a fájl csonkolása, amikor egy fájlt megnyit a w + opcióval a pythonban?

A fájl nullára csonkítása azt jelenti, hogy az egész tartalmat elveti: a fájl mérete 0 lesz, így üres lesz (és az adatok eltűntek), de a fájl továbbra is létezik a fájlrendszeren.

UNIX és UNIX-szerű operációs rendszereken (és általában a POSIX rendszeren kompatibilis operációs rendszerek) létezik az truncate(2) rendszerhívás, amely felhasználható a fájl egy részének vagy egészének elvetésére (a fájl vége felé).

Ilyen rendszereken a open(2) rendszerhívás megadható egy jelzők paraméterrel, amely meghatározza a O\_TRUNC jelző, amely azt mondja, hogy a fájl tartalmát 0-ra kell csonkítani, amikor megnyitja.

Hasonlóképpen, a C szabványos I / O könyvtár A fopen() függvény megadhat egy nyitási módot w+, jelezve, hogy a fájlt írásra nyitják meg, és ha nem, akkor létre kell hozni t létezik, vagy 0-ra kell csonkítani, ha már létezik.

És mivel a Python open() függvénye hasonlóan működik, mint a fopen() függvény C-ben, w+ azt jelenti, hogy a fájl tartalmát nulla hosszúságúra csonkítja, mielőtt bármit is írna.

Válasz

A kérdés további tisztázásra szorul. Ki csinálja a csonkítást? Ugyanaz a python folyamat, amely megnyitotta a folyamot, vagy más folyamat? Írja a python fájl a fájlba, mivel egy másik szál / folyamat csonkolja? A csonkolási művelet ciklusban történik, vagy ilyesmi?

A kérdésre adott válasz attól függ, hogy mi folyik a fájllal, amikor ezek az írási és csonkítási műveletek zajlanak.

Szintén … protip: ne nézd meg a python2 docs-t. Nézd meg a python3 docs-t. És általában használja a python3

-t

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük