Programação funcional avançada Program Slicing Patrick Machado.
Programação Avançada Manipulação de arquivos
description
Transcript of Programação Avançada Manipulação de arquivos
Programao Avanada
Programao AvanadaManipulao de arquivosProf. Natalia Castro FernandesMestrado em Telecomunicaes UFF2 semestre/2012IntroduoArquivos so usados para fazer operaes de entrada e sadaDisco, monitor, teclado, impressoraRepresentao de arquivos em PythonClasse fileUsando os arquivosUso:Abrir o arquivoLer ou escreverFechar o arquivo
Abrindo os arquivosopen(arquivo,modo,buffer)Retorna um objeto do tipo fileArgumentosArquivo = nome do arquivo com caminho. Se caminho omitido, busca no diretrio localModo = modo de abertura do arquivo, com padro para leituraOpcionalTiposr =leituraw =escritab =binrioa =escrita a partir do finalr+ =leitura e escritaBuffer =indica se a memria ser usada para acelerar a operaoOpcionalTipos0 = no usa buffer1 ou nmero negativo = buffer padro2 ou nmero > 2 = tamanho do buffer em bytes
Evite usar, pois, usualmente, fonte de erro.Manipulao de arquivosLeituraArquivo.read(num_bytes)L num_bytes de Arquivo e os retorna em uma stringSe num_bytes no especificado, retorna uma string contendo desde o ponto atual at o finalArquivo.readline()L uma linha do arquivoArquivo.readlines()Gera uma lista com todas as linhas do arquivo
Manipulao de arquivosEscritaArquivo.write(texto)Escreve texto no arquivoComando termina mesmo que o contedo ainda esteja em buffer e no tenha ainda sido escrito em discoMtodos flush() e close() asseguram a escrita de todo o contedo do bufferTexto precisa ser do tipo stringSe for escrever outro tipo de dado, converter com o mtodo str()Manipulao de arquivosEscritaArquivo.writelines(lista_de_strings)Escreve as strings da lista no arquivo, concatenando-as.Manipulao de arquivosPosio atual do ponteiro do arquivoArquivo.tell()Posio medida em byteReposicionamento do ponteiroArquivo.seek(offset,a_partir_de)Offset = quanto deve ser movidoValores positivos ou negativoA_partir_de = de qual ponto deve ser marcado o offsetOpcional, tendo por padro o inicio do arquivoValores0 = inicio do arquivo1 = posio atual2 = fim do arquivo
Finalizando o uso do arquivoArquivo.close()Finaliza o uso do arquivoGarante que todas as operaes foram finalizadas para aquele arquivo
ExemplosCriando arquivos
Se o arquivo novo, obrigatrio indicar que uma operao de escrita.Exemplos
Criando arquivos
ExemplosAbrindo arquivos binrios
ExemplosLeitura de arquivos e seek
ExemplosLeitura de arquivos e seek
Arquivo:
12345678910 11 12
ExemplosEscrita
Arquivo original:
12345678910 11 12
ExemplosEscrita
Convenes de fim de linhaA forma de representao do caractere fim de linha muda dependendo do sistema operacionalWindows: \r\nLinux: \nMacOS: \rPython converte automaticamente essas representaes para \n se o arquivo for aberto em modo texto (r,w,a,r+)Essa converso no feita se o arquivo aberto em modo binrio (b)Varrendo um arquivo completoOs mtodos read() e readlines() permitem ler todas as linhasPara fazer um loop linha a linha:for linha in obj_arquivo:print line
Arquivos especiaisComunicao com o monitorComando print escreve no arquivo sys.stdoutComunicao com o tecladoComandos input e raw_input leem do arquivo sys.stdinComunicao de erro e exceesEscrita das mensagens no arquivo sys.stderrExemplos
Equivalente ao print.Equivalente ao raw_input, sem escrever algum texto na tela.Redirecionamento de SadasPrograma > arquivoO contedo que seria escrito em sys.stdout escrito em arquivoEm Linux, no shell bash, essa notao redireciona o sys.stderr para arquivoPrograma < arquivoO contedo de sys.stdin, que seria a entrada, substitudo por arquivoPrograma1 | Programa2A sada de Programa1 redirecionada para Programa2Exemplo
ExercciosEm um script:Crie um arquivoEscreva 10 caracteres aleatrios nesse arquivo e finalize a linhaFeche o arquivoRepita a operao anterior por 1000 vezes, mas as linhas devem ser adicionadas ao arquivo e no sobrescritas.Feche o arquivoAbra o arquivo que voc acabou de criar e conte quantas vezes aparece a vogal a e a combinao de
ExercciosCrie dois arquivos e, em cada um, coloque um texto extrado da Internet com vrias linhas. Em seguida, crie um script que:Mescle o contedo dos dois arquivos em um terceiro arquivoInverta o contedo do 1 arquivo. Ateno: O resultado final no um novo arquivo, mas o primeiro arquivo com o contedo sobrescrito.
ExercciosCrie um arquivo e coloque dentro dele um texto extrado da Internet com vrias linhas. Em seguida:Guarde em uma lista as trs ltimas letras que aparecem antes de cada vogal.