View
220
Download
0
Category
Preview:
Citation preview
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� Representação de arquivos em Python
� Classe file
Usando os arquivos� Uso:
� Abrir o arquivo
� Ler ou escrever
� Fechar o arquivo� 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� 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.
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 � 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 � 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)� 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 arquivoaquele 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:
12345678910 11 1210 11 12
Exemplos� Escrita
Arquivo original:
12345678910 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� 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:� 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� Comandos input e raw_input leem do arquivo sys.stdin
� Comunicação de erro e exceções
� Escrita das mensagens no arquivo sys.stderr
ExemplosEquivalente 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 � 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 linhaa 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 � 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.antes de cada vogal.
Recommended