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