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
os.open(), read(), write(), lseek(), close(), closerange(): Lucrul de nivel jos cu fișierele, prin descriptori numerici, ca în C.os.path.getsize(), getmtime(), getatime(), getctime(): Mărimea unui fișier și momentele ultimei modificări, ale ultimului acces și ale schimbării.