En cuanto a que seek()
no hay mucho de qué preocuparse.
En primer lugar, es útil cuando se opera sobre un archivo abierto.
Es importante tener en cuenta que su sintaxis es la siguiente:
fp.seek(offset, from_what)
¿Dónde fp
está el puntero de archivo con el que está trabajando? offset
significa cuántas posiciones moverás; from_what
define su punto de referencia:
- 0 : significa que su punto de referencia es el comienzo del archivo
- 1 : significa que su punto de referencia es la posición actual del archivo
- 2 : significa que su punto de referencia es el final del archivo
si se omite, el valor from_what
predeterminado es 0.
Nunca olvides que al administrar archivos, siempre habrá una posición dentro de ese archivo donde estás trabajando actualmente. Cuando se abre, esa posición es el comienzo del archivo, pero a medida que trabaja con él, puede avanzar.
seek
te será útil cuando necesites walk
ese archivo abierto, como un camino por el que estás viajando.
os.SEEK_SET
,os.SEEK_CUR
yos.SEEK_END
en lugar de los números mágicos0
,1
y2
, respectivamente.Cuando abre un archivo, el sistema señala el comienzo del archivo. Cualquier lectura o escritura que hagas pasará desde el principio. Una
seek()
operación mueve ese puntero a otra parte del archivo para que pueda leer o escribir en ese lugar.Por lo tanto, si desea leer el archivo completo pero omite los primeros 20 bytes, abra el archivo,
seek(20)
vaya al lugar donde desea comenzar a leer, luego continúe leyendo el archivo.O digamos que desea leer cada 10 bytes, podría escribir un ciclo que lo haga
seek(9, 1)
(mueve 9 bytes hacia adelante en relación con las posiciones actuales),read(1)
(lee un byte), repita.fuente
La
seek
función espera es un desplazamiento en bytes.Ejemplo de archivo ASCII:
Entonces, si tiene un archivo de texto con el siguiente contenido:
simple.txt
Puedes saltar 1 byte para omitir el primer carácter de la siguiente manera:
Ancho de recopilación de ejemplo de archivo binario:
fuente
Para las cadenas, olvídate de usar WHENCE: usa f.seek (0) para colocar al principio del archivo y f.seek (len (f) +1) para colocar al final del archivo. Use abrir (archivo, "r +") para leer / escribir en cualquier parte de un archivo. Si usa "a +", solo podrá escribir (agregar) al final del archivo, independientemente de dónde coloque el cursor.
fuente