Prof. Natalia Castro Fernandes
Mestrado em Telecomunicações – UFF
2º semestre/2012
Introdução
 Arquivos são usados para fazer operações de entrada e
saída
 Disco, monitor, teclado, impressora
 Representação de arquivos em Python
 Classe file
Usando os arquivos
 Uso:
 Abrir o arquivo
 Ler ou escrever
 Fechar o arquivo
Abrindo
os
arquivos
open(arquivo,modo,buffer)

 Retorna um objeto do tipo file
 Argumentos


Arquivo = nome do arquivo com caminho. Se caminho omitido, busca no
diretório local
Modo = modo de abertura do arquivo, com padrão para leitura



Opcional
Tipos
 r =leitura
 w =escrita
 b =binário
 a =escrita a partir do final
 r+ =leitura e escrita
Evite usar, pois,
usualmente, é
fonte de erro.
Buffer =indica se a memória será usada para acelerar a operação


Opcional
Tipos
 0 = não usa buffer
 1 ou número negativo = buffer padrão
 2 ou número > 2 = tamanho do buffer em bytes
Manipulação de arquivos
 Leitura
 Arquivo.read(num_bytes)


Lê num_bytes de Arquivo e os retorna em uma string
Se num_bytes não é especificado, retorna uma string
contendo desde o ponto atual até o final
 Arquivo.readline()

Lê uma linha do arquivo
 Arquivo.readlines()

Gera uma lista com todas as linhas do arquivo
Manipulação de arquivos
 Escrita
 Arquivo.write(texto)


Escreve texto no arquivo
 Comando termina mesmo que o conteúdo ainda esteja em
buffer e não tenha ainda sido escrito em disco
 Métodos flush() e close() asseguram a escrita de todo o
conteúdo do buffer
Texto precisa ser do tipo string
 Se for escrever outro tipo de dado, converter com o método
str()
Manipulação de arquivos
 Escrita
 Arquivo.writelines(lista_de_strings)

Escreve as strings da lista no arquivo, concatenando-as.
Manipulação de arquivos
 Posição atual do ponteiro do arquivo
 Arquivo.tell()

Posição medida em byte
 Reposicionamento do ponteiro
 Arquivo.seek(offset,a_partir_de)


Offset = quanto deve ser movido
 Valores positivos ou negativo
A_partir_de = de qual ponto deve ser marcado o offset
 Opcional, tendo por padrão o inicio do arquivo
 Valores
 0 = inicio do arquivo
 1 = posição atual
 2 = fim do arquivo
Finalizando o uso do arquivo
 Arquivo.close()
 Finaliza o uso do arquivo
 Garante que todas as operações foram finalizadas para
aquele arquivo
Exemplos
 Criando arquivos
Se o arquivo é novo, é obrigatório
indicar que é uma operação de
escrita.
Exemplos
 Criando arquivos
Exemplos
 Abrindo arquivos binários
Exemplos
 Leitura de arquivos e seek
Exemplos
 Leitura de arquivos e seek
Arquivo:
123
456
789
10 11 12
Exemplos
 Escrita
Arquivo original:
123
456
789
10 11 12
Exemplos
 Escrita
Convenções de fim de linha
 A forma de representação do caractere fim de linha
muda dependendo do sistema operacional
 Windows: \r\n
 Linux: \n
 MacOS: \r
 Python converte automaticamente essas
representações para \n se o arquivo for aberto em
modo texto (r,w,a,r+)
 Essa conversão não é feita se o arquivo é aberto em modo
binário (b)
Varrendo um arquivo completo
 Os métodos read() e readlines() permitem ler todas as
linhas
 Para fazer um loop linha a linha:
 for linha in obj_arquivo:

print line
Arquivos especiais
 Comunicação com o monitor
 Comando print escreve no arquivo sys.stdout
 Comunicação com o teclado
 Comandos input e raw_input leem do arquivo sys.stdin
 Comunicação de erro e exceções
 Escrita das mensagens no arquivo sys.stderr
Exemplos
Equivalente ao
print.
Equivalente ao
raw_input, sem
escrever algum
texto na tela.
Redirecionamento de Saídas
 Programa > arquivo
 O conteúdo que seria escrito em sys.stdout é escrito em
arquivo
 Em Linux, no shell bash, essa notação redireciona o
sys.stderr para arquivo
 Programa < arquivo
 O conteúdo de sys.stdin, que seria a entrada, é
substituído por arquivo
 Programa1 | Programa2
 A saída de Programa1 é redirecionada para Programa2
Exemplo
Exercícios
 Em um script:
 Crie um arquivo
 Escreva 10 caracteres aleatórios nesse arquivo e finalize
a linha
 Feche o arquivo
 Repita a operação anterior por 1000 vezes, mas as linhas
devem ser adicionadas ao arquivo e não sobrescritas.
 Feche o arquivo
 Abra o arquivo que você acabou de criar e conte
quantas vezes aparece a vogal ‘a’ e a combinação ‘de’
Exercícios
 Crie dois arquivos e, em cada um, coloque um texto
extraído da Internet com várias linhas. Em seguida,
crie um script que:
 Mescle o conteúdo dos dois arquivos em um terceiro
arquivo
 Inverta o conteúdo do 1º arquivo. Atenção: O resultado
final não é um novo arquivo, mas o primeiro arquivo
com o conteúdo sobrescrito.
Exercícios
 Crie um arquivo e coloque dentro dele um texto
extraído da Internet com várias linhas. Em seguida:
 Guarde em uma lista as três últimas letras que aparecem
antes de cada vogal.
Download

Programação Avançada Manipulação de arquivos