Python File Seek

Python File Seek
Python tiene varias técnicas para tratar con archivos. Hay métodos para manipular el puntero del archivo de manera efectiva y las operaciones básicas como leer y escribir en archivos. Aprenderá cómo utilizar el método Seek () para reubicar el puntero del archivo mientras lee o escribe un archivo en este artículo.

La función Seek () establece la posición de un puntero de archivo, mientras que la función Tell () devuelve la posición actual del puntero del archivo. La función de búsqueda de Python cambia la ubicación actual del archivo a la compensación. Por lo tanto, es un parámetro opcional que es predeterminado a 0 para la colocación inmediata de archivos; Otros valores son 1 para la búsqueda en relación con la ubicación actual y 2 para la búsqueda en relación con el final del archivo. No se devuelve el valor. Cualquier acción Seek () se borrará en la próxima escritura si el archivo se abre para agregar con 'a' o 'a+.'Este método no es de ningún uso si el archivo acaba de abrir para escribir y está en el modo de anexo con' a ', pero es útil para los archivos abiertos en modo de anexo con lectura habilitada. Solo los desplazamientos devueltos por Tell () son legales cuando el archivo se abre en modo de texto con 'T.'El uso de varias compensaciones da como resultado un comportamiento impredecible. Es vital tener en cuenta que no se pueden buscar todos los objetos de archivo.

El propósito de este artículo es enseñarle cómo utilizar el método Seek () para avanzar o retroceder el cursor del archivo desde su posición actual. Aprenda a reubicar el puntero del archivo al principio o al final del archivo. Aprenda cómo determinar la posición actual del "Handle de archivos" moviendo el puntero del archivo hacia atrás desde el final del archivo. Entonces, comencemos el tutorial.

Ejemplo 1:

Considere el siguiente escenario, en el que estamos leyendo el contenido de un archivo de texto con un desplazamiento de 5. Esto indica que comenzaremos a leer el archivo en el quinto personaje.

Aquí, hemos abierto el archivo dando la ruta exacta de él. Después de eso, leemos el contenido del quinto personaje utilizando el método Seek.

con Open (r'd:/ussers/demostración/demostración.txt ', "r") como fp:
FP.buscar (5)
Imprimir (FP.leer())

Faltan los primeros cinco caracteres en la salida, como puede ver.

Ejemplo 2:

Buscaremos el comienzo del archivo en este caso. Al establecer el parámetro de dónde, podemos usar el método Seek () para mover la referencia del archivo al comienzo del archivo. El 0 denota el comienzo del archivo, que es el primer byte. Veamos cómo obtener el cursor del archivo al comienzo del archivo. Aquí estamos escribiendo en un archivo de texto en el ejemplo de procedimiento. Queríamos mover el cursor al comienzo del archivo después de agregar contenido para leer el archivo completo.

con Open (r'd:/ussers/demostración/demostración.txt ', "w+") como fp:
FP.Escribir ('Línea de contenido de muestra 1 \ n')
FP.escribir ('Línea de contenido de muestra 2')
FP.buscar (0)
Imprimir (FP.leer())

El texto está escrito.

A continuación se muestra el texto actualizado después de la ejecución exitosa del código.

Ejemplo 3:

En este ejemplo, buscaremos desde el final del archivo. En este caso, comenzaremos a buscar al final del archivo. Establecimos de dónde en 2 y compensamos a 0 para mover el puntero del archivo al final del archivo. Las tres operaciones enumeradas a continuación se llevarán a cabo en el ejemplo a continuación. Agregaremos contenido adicional y cambiaremos el puntero del archivo al final del archivo. La referencia del archivo se moverá al comienzo del archivo y se agregará una nueva información allí. Devolveremos el puntero del archivo al principio y continuaremos con la operación de escritura. Veamos cómo mover el cursor del archivo al final del archivo. Usaremos un archivo existente para este proceso y abriremos un nuevo archivo en modo de lectura/escritura.

con Open (r'd:/ussers/demostración/demostración.txt ', "w+") como fp:
FP.Escribir ('Línea de contenido de muestra 1 \ n')
FP.escribir ('Línea de contenido de muestra 2')
FP.buscar (0)
Imprimir (FP.leer())

El contenido se agrega al final de la línea.

La demostración.El archivo txt también se actualiza.

Ejemplo 4:

Finalmente, veremos la situación actual. Podemos reubicar el puntero del archivo algunas posiciones antes de la posición actual configurando de dónde 1 y compensar el número de la posición que queremos modificar. Si el puntero del archivo actual está en la posición 20 y desea saltar al carácter 75, configure el desplazamiento a 50 y de donde en 1. Usaremos un archivo existente y abriremos un nuevo archivo en modo de lectura/escritura para este proceso. Considere el código a continuación, que lee tres bytes y los convierte en bytes. El elemento se avanzó a 10 puntos desde su posición existente. Hemos leído tres bytes en el último.

con Open (r'd:/ussers/demostración/demostración.txt ', "rb") como fp:
FP.buscar (2)
Imprimir (FP.Leer (3).Decode ("UTF-8"))
FP.buscar (5, 1)
Imprimir (FP.Leer (3).Decode ("UTF-8"))

La pantalla resultante del código anterior es el siguiente.

Conclusión:

En este artículo, aprendimos cómo navegar por diferentes partes o secciones de un archivo utilizando FileHandle. Le mostramos cómo alterar la posición de Handle de archivos con el método Seek () para agregar nuevo contenido o leer ciertas secciones de archivos.