Junior
¿Qué hacen los métodos `tell` y `seek` en Python?
sobes.tech AI
Respuesta de la IA
El método tell() devuelve la posición actual del puntero del archivo en bytes. El método seek(offset, origin) mueve el puntero del archivo a un desplazamiento especificado.
Parámetros del método seek():
offset: Número de bytes para desplazarse.origin: Punto de referencia para el desplazamiento. Los valores posibles son:- 0 (o
io.SEEK_SET): Inicio del archivo (por defecto). - 1 (o
io.SEEK_CUR): Posición actual del puntero del archivo. - 2 (o
io.SEEK_END): Final del archivo.
- 0 (o
Ejemplo de uso:
# Creamos un archivo para el ejemplo
with open("example.txt", "w") as f:
f.write("Hello, world!")
# Abrimos el archivo para lectura
with open("example.txt", "r") as f:
# Posición actual - inicio del archivo (0)
print(f.tell()) # Mostrará 0
# Leemos 5 caracteres
content = f.read(5)
print(content) # Mostrará Hello
# Posición actual después de la lectura (5 bytes)
print(f.tell()) # Mostrará 5
# Nos desplazamos 3 bytes desde el inicio del archivo
f.seek(3, 0)
print(f.tell()) # Mostrará 3
# Leemos el resto
content = f.read()
print(content) # Mostrará lo, world!
# Posición actual - final del archivo
print(f.tell()) # Mostrará 13
# Nos desplazamos 5 bytes hacia atrás desde el final del archivo
f.seek(-5, 2)
print(f.tell()) # Mostrará 8
# Leemos
content = f.read()
print(content) # Mostrará world!
Importante: En modo de texto ('r', 'w', 'a') seek() y tell() pueden no funcionar correctamente con datos no codificados o al usar caracteres especiales. Se recomienda usar modo binario ('rb', 'wb', 'ab') para una posicionamiento preciso.