os.truncate() și os.ftruncate() în Python

Taie un fișier la o anumită lungime sau îl extinde cu zerouri.

Sintaxă
os.truncate(cale, lungime)
os.ftruncate(fd, lungime)

Ce face os.truncate() și os.ftruncate()

truncate(cale, n) face ca fișierul să aibă exact n octeți: dacă era mai lung, restul se pierde; dacă era mai scurt, se completează cu octeți zero. ftruncate(fd, n) face același lucru pe un fișier deschis. Obiectele fișier au și metoda f.truncate(n).

Parametri

Parametru Descriere
cale / fd Fișierul.
lungime Noua lungime, în octeți.

Ce returnează

None.

Exemple

Exemplul 1: Golirea unui jurnal și prealocare

import os
with open("jurnal.log", "w") as f:
    f.write("linie\n" * 100)
os.truncate("jurnal.log", 12)
with open("jurnal.log") as f:
    print(repr(f.read()))
with open("date.bin", "wb") as f:
    os.ftruncate(f.fileno(), 1024)
print(os.path.getsize("date.bin"))

Rezultat

'linie\nlinie\n'
1024

Greșeli frecvente

  • Tai un fișier text în mijlocul unei litere cu diacritice (2 octeți) și textul rămas nu mai poate fi decodificat.

Comenzi înrudite