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.