No seek()
que diz respeito não há muito com que se preocupar.
Primeiro de tudo, é útil ao operar sobre um arquivo aberto.
É importante observar que sua sintaxe é a seguinte:
fp.seek(offset, from_what)
onde fp
está o ponteiro do arquivo com o qual você está trabalhando; offset
significa quantas posições você se moverá; from_what
define seu ponto de referência:
- 0 : significa que seu ponto de referência é o início do arquivo
- 1 : significa que seu ponto de referência é a posição atual do arquivo
- 2 : significa que seu ponto de referência é o final do arquivo
se omitido, o from_what
padrão é 0.
Nunca se esqueça de que, ao gerenciar arquivos, sempre haverá uma posição dentro desse arquivo em que você está trabalhando no momento. Quando aberta, essa posição é o início do arquivo, mas, ao trabalhar com ele, você pode avançar.
seek
será útil quando você precisar walk
acompanhar o arquivo aberto, exatamente como o caminho para o qual está viajando.
os.SEEK_SET
,os.SEEK_CUR
e,os.SEEK_END
em vez dos números mágicos0
,1
e2
, respectivamente.Quando você abre um arquivo, o sistema aponta para o início do arquivo. Qualquer leitura ou gravação que você fizer acontecerá desde o início. Uma
seek()
operação move esse ponteiro para outra parte do arquivo, para que você possa ler ou escrever nesse local.Portanto, se você quiser ler o arquivo inteiro, mas pular os primeiros 20 bytes, abra o arquivo
seek(20)
para ir para onde deseja começar a ler e continue lendo o arquivo.Ou diga que você quer ler cada 10 bytes, você pode escrever um loop que faz
seek(9, 1)
(move 9 bytes para frente em relação às posições atuais)read(1)
(lê um byte), repita.fonte
A
seek
função espera é um deslocamento em bytes.Exemplo de arquivo Ascii:
Portanto, se você tiver um arquivo de texto com o seguinte conteúdo:
simple.txt
Você pode pular 1 byte para pular o primeiro caractere da seguinte maneira:
Exemplo de arquivo binário que reúne a largura:
fonte
Para strings, esqueça de usar WHENCE: use f.seek (0) para posicionar no início do arquivo e f.seek (len (f) +1) para posicionar no final do arquivo. Use open (arquivo, "r +") para ler / gravar em qualquer lugar do arquivo. Se você usar "a +", poderá escrever (acrescentar) no final do arquivo, independentemente de onde posicionar o cursor.
fonte