Python Glossary English

все Python 3Файлы и I/Oфункция

io.IOBase.tell()

позиция в файле

Возвращает текущую позицию в файле: в бинарном режиме — смещение в байтах, в текстовом — непрозрачное число для seek().

Синтаксис

file.tell() -> int

В бинарном режиме tell() отдаёт настоящее смещение в байтах, а в текстовом — непрозрачное число: с ним нельзя делать арифметику, единственное законное применение — вернуть его обратно в seek(). Поэтому, если нужно прыгать на N байт вперёд и считать позиции, файл открывают с 'b'. В текстовом режиме ещё и переводы строк транслируются, так что число из tell() не совпадает с количеством прочитанных символов.

Примеры

with open('data.txt', 'wb') as f:
    f.write(b'hello world')
with open('data.txt', 'rb') as f:
    f.read(5)
    print(f.tell())     # → 5
    f.read(3)
    print(f.tell())     # → 8
    f.seek(0)           # вернуться в начало
    print(f.tell())     # → 0

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности