file.truncate([size])
file
- объект файла,size
- int
.int
, количество символов или байт.Метод файла file.truncate()
усекает размер файла. Если указан необязательный аргумент size
, файл усекается до этого (максимально) размера.
По умолчанию size
равен текущей позиции указателя чтения/записи файла. Обратите внимание, что если указанный размер size
превышает текущий размер записанного файла, результат будет зависеть от платформы.
Примечание. Этот метод не будет работать, если файл открыт в режиме только для чтения.
>>> text = 'This is 1st line\nThis is 2nd line\nThis is 3rd line\n' >>> fp = open('foo.txt', 'w+') >>> fp.write(text) # 51 # Ограничиваем размер файла до # 34 байт это 2 строчки >>> fp.truncate(34) # 34 # сбрасываем буфер в файл >>> fp.flush() # указатель чтения/записи в начало файла >>> fp.seek(0) # 0 # пробуем читать >>> fp.readline() 'This is 1st line\n' >>> fp.readline() 'This is 2nd line\n' >>> fp.readline() '' >>> fp.close()
Внимание! Функцию open()
предпочтительнее использовать с оператором контекстного менеджера with
. При использовании оператора with
файл закрывать не нужно:
text = 'This is 1st line\nThis is 2nd line\nThis is 3rd line\n' # пишем with open('foo.txt', 'w') as fp: fp.write(text) # Ограничиваем размер файла до # 34 байт это 2 строчки fp.truncate(34) # сбрасываем буфер в файл fp.flush() #51 #34 # читаем, что получилось with open('foo.txt', 'r') as fp: for line in fp: print(line) # This is 1st line # This is 2nd line