Sobes.tech
Junior

Pythonдогу `tell` жана `seek` методдору эмне кылат?

sobes.tech AI

AIден жооп

tell() ыкмасы файл көрсөткүчүнүн учурдагы ордун байттарда кайтарат. seek(offset, origin) ыкмасы файл көрсөткүчүн белгиленген орундун ордуна которот.

seek() ыкмасынын параметрлери:

  • offset: Котормо үчүн байттардын саны.
  • origin: Котормонун негизги чекити. Мүмкүн болгон маанилер:
    • 0 (же io.SEEK_SET): Файлдын башы (өзүнчө)
    • 1 (же io.SEEK_CUR): Файл көрсөткүчүнүн учурдагы орду
    • 2 (же io.SEEK_END): Файлдын аягы

Колдонуу мисалы:

# Мисал үчүн файл түзөбүз
with open("example.txt", "w") as f:
    f.write("Hello, world!")

# Файлды окуу үчүн ачабыз
with open("example.txt", "r") as f:
    # Учурдагы орду - файлдын башы (0)
    print(f.tell()) # 0 чыгат

    # 5 белгини окуйбуз
    content = f.read(5)
    print(content) # Hello чыгат

    # Окуудан кийин учурдагы орду (5 байт)
    print(f.tell()) # 5 чыгат

    # Файлдын башынан 3 байтка жылдырабыз
    f.seek(3, 0)
    print(f.tell()) # 3 чыгат

    # Калганын окуйбуз
    content = f.read()
    print(content) # lo, world! чыгат

    # Учурдагы орду - файлдын аягы
    print(f.tell()) # 13 чыгат

    # Файлдын аягынан 5 байт артка жылдырабыз
    f.seek(-5, 2)
    print(f.tell()) # 8 чыгат

    # Окууну улантабыз
    content = f.read()
    print(content) # world! чыгат

Маанилүү: Текст режиминде ('r', 'w', 'a') seek() жана tell() туура иштебей калышы мүмкүн, эгерде коддолбогон маалыматтар же атайын белгилер колдонулса. Так жайгаштыруу үчүн бинардык режим ('rb', 'wb', 'ab') колдонуу сунушталат.