1 / 25

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

Programação Avançada Manipulação de arquivos. 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.

ulfah
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programação AvançadaManipulação de arquivos Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012

  2. 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

  3. Usando os arquivos • Uso: • Abrir o arquivo • Ler ou escrever • Fechar o arquivo

  4. 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 • 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 Evite usar, pois, usualmente, é fonte de erro.

  5. 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

  6. 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()

  7. Manipulação de arquivos • Escrita • Arquivo.writelines(lista_de_strings) • Escreve as strings da lista no arquivo, concatenando-as.

  8. 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

  9. Finalizando o uso do arquivo • Arquivo.close() • Finaliza o uso do arquivo • Garante que todas as operações foram finalizadas para aquele arquivo

  10. Exemplos Se o arquivo é novo, é obrigatório indicar que é uma operação de escrita. • Criando arquivos

  11. Exemplos • Criando arquivos

  12. Exemplos • Abrindo arquivos binários

  13. Exemplos • Leitura de arquivos e seek

  14. Exemplos • Leitura de arquivos e seek Arquivo: 123 456 789 10 11 12

  15. Exemplos • Escrita Arquivo original: 123 456 789 10 11 12

  16. Exemplos • Escrita

  17. 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)

  18. 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

  19. 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

  20. Exemplos Equivalente ao print. Equivalente ao raw_input, sem escrever algum texto na tela.

  21. 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

  22. Exemplo

  23. 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’

  24. 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.

  25. 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.

More Related