Ce face trunchierea unui fișier atunci când deschideți un fișier cu opțiunea w + în python?


Cel mai bun răspuns

Întrebați: Ce face trunchierea unui fișier atunci când deschideți un fișier cu opțiunea w + în python?

Trunchierea unui fișier la zero înseamnă renunțarea la tot conținutul său: dimensiunea fișierului devine 0, deci devine gol (și datele au dispărut), dar fișierul există încă pe sistemul de fișiere.

Pe sistemele de operare UNIX și UNIX (și, în general, pe POSIX -sisteme de operare compatibile) există apelul de sistem truncate(2) care poate fi utilizat pentru a arunca o parte sau tot conținutul unui fișier (spre sfârșitul unui fișier).

Pe astfel de sisteme, apelului de sistem open(2) i se poate specifica un parametru steaguri care specifică O\_TRUNC semnalizator care spune că conținutul fișierului ar trebui să fie trunchiat la 0 la deschiderea acestuia.

În mod similar, biblioteca standard I / O C funcția fopen() poate fi specificată un mod de deschidere w+ indicând faptul că fișierul este deschis pentru scriere și că ar trebui creat dacă nu nu există sau ar trebui să fie tăiat la 0 dacă există deja.

Și din moment ce funcția open() din Python funcționează similar cu fopen() funcția în C, w+ înseamnă trunchierea conținutului fișierului la lungimea zero înainte de a scrie ceva.

Răspunde

întrebarea necesită mai multe clarificări. Cine face trunchierea? Același proces python care a deschis fluxul sau un alt proces? Fișierul python scrie în fișier pe măsură ce un alt fir / proces îl trunchiază? Operația de trunchiere se întâmplă într-o buclă sau ceva de genul acesta?

Răspunsul la întrebarea dvs. depinde de ceea ce se întâmplă cu fișierul atunci când aceste operații de scriere și trunchiere se întâmplă ….

De asemenea … protip: nu te uita la documente python2. Uită-te la documente python3. Și folosiți python3 în general

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *