|
|
| (40 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) |
| Linha 1: |
Linha 1: |
| = Manipulação de arquivos =
| |
| <br>
| |
|
| |
|
| * Para criar arquivos em Python, inicialmente precisamos abrir um arquivo existente ou um novo
| |
| * Para isso, utilizamos a função ''open''
| |
| <br>
| |
|
| |
| * Para trabalhar com arquivos em Python, é necessário primeiro "abrir" o arquivo
| |
| * Depois "ler" ou "escrever" neste arquivo
| |
| * Finalmente "fechá-lo"
| |
| <br>
| |
|
| |
| == Abrindo arquivos ==
| |
| <br>
| |
|
| |
| * Função ''open'':
| |
| ** Cria novos arquivos
| |
| ** Abrie arquivos existentes, como leitura ou escrita
| |
| <br>
| |
|
| |
| * Sintaxe:
| |
| ** variável = open("file", "modo")
| |
| *** variável = Nome da variável que vai receber o conteúdo da função open
| |
| *** file = Nome do arquivo que se quer ler ou escrever.
| |
| *** modo = Indica o que se quer fazer com o arquivo [ "r" (read), "w" (write)]
| |
| <br>
| |
|
| |
| * Exemplo na prática:
| |
|
| |
| var_file = open("arquivo.txt","w")
| |
| print(var_file)
| |
| open file 'arquivo.txt', mode 'w' at 0x7f775c2ec6f0>
| |
| type(var_file)
| |
| <type 'file'>
| |
|
| |
| * Pode-se verificar mais um tipo de dado além de int, float, string, lists e dictionaries, o tipo '''file'''.
| |
| <br>
| |
|
| |
| * Ação:
| |
| ** O arquivo.txt foi criado no modo escrita
| |
| ** É exibido o endereço do arquivo que se encontra em memória RAM (opcional)
| |
| ** O tipo da variável "var_file" com a função type() é verificado (opcional).
| |
| <br>
| |
|
| |
| * Obs:
| |
| ** Se o arquivo "arquivo.txt" já existisse, ele seria aberto como modo escrita
| |
| ** Como no exemplo ele não existia, então foi criado como um novo arquivo
| |
| <br>
| |
|
| |
| * Como Python é uma linguagem orientada a objetos, agora a variável "var_file" é um objeto, e podemos acessar os métodos desse objeto que são os seguintes:
| |
| ** ''write(data)''
| |
| *** Escreve a string data para o arquivo, na posição atual ou ao final do arquivo, dependendo do modo de abertura
| |
| *** Esta função falha se o arquivo foi aberto com modo "r".
| |
| ** ''close()''
| |
| *** Fecha o arquivo. Sempre utilizado no final da manipulação do arquivo
| |
| ** ''read()''
| |
| *** Retorna uma string única com todo o conteúdo do arquivo
| |
| ** ''readline()''
| |
| *** Retorna a próxima linha do arquivo, e incrementa a posição atual
| |
| ** ''readlines()''
| |
| *** Retorna todo o conteúdo do arquivo em uma lista, uma linha do arquivo por elemento da lista
| |
| ** ''seek(n)''
| |
| *** Muda a posição atual do arquivo para o valor indicado em n
| |
| <br>
| |
|
| |
| == Gravando linhas no arquivo ==
| |
| <br>
| |
|
| |
| * Exemplo de como escrever uma frase em um arquivo utilizando método write():
| |
|
| |
| newfile = open("/home/lclaudio/arquivo1.txt","w")
| |
|
| |
| newfile.write("casa")
| |
| newfile.write("bola")
| |
| newfile.write("dado")
| |
| newfile.write("faca")
| |
| newfile.write("gato")
| |
| newfile.close()
| |
|
| |
| <br>
| |
|
| |
| * Após ter escrito no arquivo através do método write(), é necessário fechar o arquivo como o método close()
| |
| * Exemplo:
| |
|
| |
| newfile.close()
| |
|
| |
|
| |
| * Abra o arquivo gerado e verifique o conteúdo:
| |
| ** Linux: comando cat nomearquivo
| |
| ** Windows: abra com Bloco de Notas
| |
| * Pode-se ver:
| |
| ** casaboladadofacagato
| |
| <br>
| |
|
| |
|
| |
| * Agora, executando a seguinte sequência:
| |
| ** casa
| |
| ** bola
| |
| ** dado
| |
| ** faca
| |
| ** gato
| |
| <br>
| |
|
| |
| * O '''\n''' serve para definir a quebra de linha
| |
| * Dessa forma, dados podem ser gravados num arquivo e poderão ser armazenados após comando close
| |
| <br>
| |
|
| |
| === Exercícios ===
| |
| <br>
| |
|
| |
| * Crie os arquivos abaixo com os conteúdos sugeridos e verifique se a gravação ocorreu como desejado:
| |
| # Arquivo minhaequipe.doc com os nomes dos integrantes
| |
| # Arquivo tarefas.txt com 10 atividades do dia
| |
| # Arquivo compras com 15 itens de compra
| |
| # Arquivo library.csv com o nomes de pelo menos 8 livros que leu este ano
| |
| # Arquivo gentileza com 30 nomes de pessoas que agradou nos últimos tempos
| |
| <br>
| |
|
| |
| == Lendo um arquivo ==
| |
| <br>
| |
|
| |
| * Agora que dados foram criados e gravados, vamos ler um arquivo.
| |
| * Modos para ler arquivos:
| |
| ** '''readlines()'''
| |
| ** '''readline()'''
| |
| ** '''read()'''
| |
| <br>
| |
|
| |
| * 1. Método readlines
| |
| ** O arquivo "minhaequipe.doc" será lido pelo método '''readlines()'''
| |
|
| |
| readarq = open("/home/lclaudio/minhaequipe.doc","r")
| |
| print(readarq)
| |
| type(readarq)
| |
|
| |
| # Lendo e imprimindo todo o arquivo
| |
| texto = readarq.readlines()
| |
| print(texto)
| |
| readarq.close()
| |
| <br>
| |
| * Resultado: Interessante que neste caso, apareceram todas as linhas montadas num vetor e contendo a quebra de linha \n
| |
| ['Alez Vaz Mendes\n', 'Lucas Guandalini Marchesoni\n', 'Luiz Cláudio Theodoro\n', 'Murilo Borges Gomes Machado\n', 'Pedro Aparecido Damaso de Melo\n', 'Rafael Leonardo Aquino\n', 'Rogério de Freitas\n']
| |
| <br>
| |
|
| |
| * Lendo o arquivo e imprimindo de outra maneira
| |
| ** O arquivo "minhaequipe.doc" será lido pelo método '''readlines()'''
| |
|
| |
| readarq = open("/home/lclaudio/minhaequipe.doc","r")
| |
| print(readarq)
| |
| type(readarq)
| |
|
| |
| # Lendo todo o arquivo e imprimindo item a item
| |
| texto = readarq.readlines()
| |
| for i in range(0,len(texto)):
| |
| print(texto[i])
| |
| readarq.close()
| |
| <br>
| |
|
| |
| * Dessa vez, é impresso linha a linha:
| |
| Alez Vaz Mendes
| |
| Lucas Guandalini Marchesoni
| |
| Luiz Cláudio Theodoro
| |
| Murilo Borges Gomes Machado
| |
| Pedro Aparecido Damaso de Melo
| |
| Rafael Leonardo Aquino
| |
| Rogério de Freitas
| |
| <br>
| |