Sem resumo de edição |
|||
| Linha 73: | Linha 73: | ||
# Programa que abre o arquivo arquivo1.txt e insere 5 linhas | # Programa que abre o arquivo arquivo1.txt e insere 5 linhas | ||
: newfile = open("/home/lclaudio/arquivo1.txt","w") | : newfile = open("/home/lclaudio/arquivo1.txt","w") | ||
: | : | ||
| Linha 82: | Linha 82: | ||
: newfile.write("gato") | : newfile.write("gato") | ||
: newfile.close() | : newfile.close() | ||
# Fim programa ------------------------------------------------------- | |||
# Após ter escrito no arquivo através do método write(), é necessário fechar o arquivo como o método close() | # Após ter escrito no arquivo através do método write(), é necessário fechar o arquivo como o método close() | ||
# Exemplo: | # Exemplo: | ||
newfile.close() | newfile.close() | ||
# Fim programa | # Fim programa ------------------------------------------------------- | ||
* Abra o arquivo gerado e verifique o conteúdo: | * Abra o arquivo gerado e verifique o conteúdo: | ||
Edição das 14h16min de 28 de maio de 2016
Manipulação de arquivos
- Para criar arquivos em Python, inicialmente precisamos abrir um arquivo existente ou um novo
- Para isso, utilizamos a função open
- Para trabalhar com arquivos em Python, é necessário primeiro "abrir" o arquivo
- Depois "ler" ou "escrever" neste arquivo
- Finalmente "fechá-lo"
Abrindo arquivos
- Função open:
- Cria novos arquivos
- Abrie arquivos existentes, como leitura ou escrita
- 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)]
- variável = open("file", "modo")
- Exemplo na prática:
# Programa que abre arquivo.txt para gravação de dados e mostra o tipo do dado
- var_file = open("arquivo.txt","w")
- print(var_file)
- open file 'arquivo.txt', mode 'w' at 0x7f775c2ec6f0>
- type(var_file)
- <type 'file'>
# Fim programa -------------------------------------------------------------------------------------------------------------
- Pode-se verificar mais um tipo de dado além de int, float, string, lists e dictionaries, o tipo file.
- 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).
- 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
- 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
- write(data)
Gravando linhas no arquivo
- Exemplo de como escrever uma frase em um arquivo utilizando método write():
# Programa que abre o arquivo arquivo1.txt e insere 5 linhas
- newfile = open("/home/lclaudio/arquivo1.txt","w")
- newfile.write("casa")
- newfile.write("bola")
- newfile.write("dado")
- newfile.write("faca")
- newfile.write("gato")
- newfile.close()
# Fim programa ------------------------------------------------------- # 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() # Fim programa -------------------------------------------------------
- Abra o arquivo gerado e verifique o conteúdo:
- Linux: comando cat nomearquivo
- Windows: abra com Bloco de Notas
- Pode-se ver:
- casaboladadofacagato
- Agora, executando a seguinte sequência:
- casa
- bola
- dado
- faca
- gato
- 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
Exercícios
- 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
- Agora que alguns dados foram criados e gravados, vamos ler um arquivo.
- Modos para ler arquivos:
- readlines()
- read()
- readline()
- Modos para ler arquivos:
1. Lendo um arquivo - readlines( )
- Método readlines
- O arquivo "minhaequipe.doc" será lido pelo método readlines()
- Inicialmente, temos que abrir o arquivo, dessa vez com a opção r
# Programa que abre o arquivo minhaequipe.doc para leitura e le todas as linhas de uma vez
- readarq = open("/home/lclaudio/minhaequipe.doc","r")
- print(readarq)
- type(readarq)
- # Lendo e imprimindo todo o arquivo
- texto = readarq.readlines()
- print(texto)
- readarq.close()
- 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']
- Lendo o arquivo e imprimindo de outra maneira
- O arquivo "minhaequipe.doc" novamente é lido pelo método readlines()
# Programa que abre o arquivo minhaequipe.doc para leitura. lê e imprime uma linha por vez
- 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()
- 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
2. Lendo um arquivo - read( )
- Primeiro, criando o arquivo com alguns dados:
# Programa que abre o arquivo tarefas.txt para gravação, insere 10 atividades e posteriormente lê todas as linhas de uma vez
- newarq = open("/home/lclaudio/tarefas.txt","w")
- print(newarq) #apenas para demonstração
- type(newarq) #apenas para demonstração
- # Inserindo as atividades do dia no arquivo tarefas.txt
- newarq.write("01. Organizar escritório\n")
- newarq.write("02. Lavar churrasqueira\n")
- newarq.write("03. Trocar lâmpadas da sala\n")
- newarq.write("04. Cortar grama\n")
- newarq.write("05. Consertat maçaneta da porta\n")
- newarq.write("06. Levar Summer para passear\n")
- newarq.write("07. Fazer compras no mercado\n")
- newarq.write("08. Pagar mensalidade do clube\n")
- newarq.write("09. Configurar modem\n")
- newarq.write("10. Encher pneus do carro\n")
- newarq.close()
- Método readl( )
- O arquivo "tarefas.txt" será lido pelo método read()
- Antes disso, temos que abrir o arquivo, novamente com a opção r
- # Lendo e imprimindo todo o arquivo
- readarq = open("/home/lclaudio/tarefas.txt","r")
- texto = readarq.read()
- print(texto)
- readarq.close()
- O resultado é mostrado abaixo:
01. Organizar escritório 02. Lavar churrasqueira 03. Trocar lâmpadas da sala 04. Cortar grama 05. Consertat maçaneta da porta 06. Levar Summer para passear 07. Fazer compras no mercado 08. Pagar mensalidade do clube 09. Configurar modem 10. Encher pneus do carro
- Nota-se que a saída, não é uma lista como no readlines() mas sim um string contendo todas as atividades, separadas linha a linha
3. Lendo um arquivo - readline( )
- Novamente criando o arquivo com as mesmas atividades:
# Programa que cria um arquivo, insere 10 linhas e depois lê apenas uma
- newarq = open("/home/lclaudio/tarefas.txt","w")
- print(newarq)
- type(newarq)
- # Inserindo as atividades do dia no arquivo tarefas.txt
- newarq.write("01. Organizar escritório\n")
- newarq.write("02. Lavar churrasqueira\n")
- newarq.write("03. Trocar lâmpadas da sala\n")
- newarq.write("04. Cortar grama\n")
- newarq.write("05. Consertat maçaneta da porta\n")
- newarq.write("06. Levar Summer para passear\n")
- newarq.write("07. Fazer compras no mercado\n")
- newarq.write("08. Pagar mensalidade do clube\n")
- newarq.write("09. Configurar modem\n")
- newarq.write("10. Encher pneus do carro\n")
- newarq.close()
- Lendo e imprimindo todo o arquivo
- readarq = open("/home/lclaudio/tarefas.txt","r")
- texto = readarq.readline()
- print(texto)
- readarq.close()
- Resultado: Apenas uma linha lida
01. Organizar escritório
- Para ter todas as linhas do arquivo, é necessária uma condição de parada
- Nesse caso, poderemos ler linha a linha até que encontremos " " (branco) indicado fim de arquivo
# Lendo e imprimindo todo o arquivo # Programa que o abre o arquivo tarefas.txt e lê as linhas até o final do arquivo
- readarq = open("/home/lclaudio/tarefas.txt","r")
- texto = "alguma coisa"
- while(texto != ""):
- texto = readarq.readline().strip()
- print(texto)
- readarq.close()
- Exemplo de programa que lê tamanhos definidos da linha
# Programa que abre o arquivo tarefas.txt para leitura e lê as linhas de acordo com um tamanho definido
- newarq = open("/home/lclaudio/tarefas.txt","w")
- print(newarq)
- type(newarq)
# Inserindo as atividades do dia no arquivo tarefas.txt
- newarq.write("01. Limpar canil \n")
- newarq.write("02. Lavar churrasqueira \n")
- newarq.write("03. Trocar lâmpadas da sala \n")
- newarq.write("04. Cortar grama \n")
- newarq.write("05. Consertat maçaneta da porta \n")
- newarq.write("06. Levar Summer para passear \n")
- newarq.write("07. Fazer compras no mercado \n")
- newarq.write("08. Pagar mensalidade do clube \n")
- newarq.write("09. Configurar modem \n")
- newarq.write("10. Encher pneus do carro \n")
:newarq.close() # Lendo e imprimindo todo o arquivo
- readarq = open("/home/lclaudio/tarefas.txt","r")
- texto1 = readarq.readline(4)
- texto2 = readarq.readline(29)
- texto3 = readarq.readline(1)
- print(texto1)
- print(texto2)
- texto1 = readarq.readline(4)
- texto2 = readarq.readline(29)
- texto3 = readarq.readline(1)
- print(texto1)
- print(texto2)
- texto1 = readarq.readline(4)
- texto2 = readarq.readline(29)
- texto3 = readarq.readline(1)
- print(texto1)
- print(texto2)
- readarq.close()
- Repare na saída:
01. Limpar canil 02. Lavar churrasqueira 03. Trocar lâmpadas da sala
- Pode-se notar que é possível ler uma linha definindo o tamanho do string
- Se a linha estiver bem estrturada é possível separar cada parte de maneira organizada
- Exercício:
- 1) Evolua no programa, criando um loop, lendo e imprimindo todas as linhas
- 2) Crie um programa que atenda a seguinte situação:
- A. Gere um arquivo alunos.doc
- B. Insira os seguintes campos: Nro, Nome e Matricula onde Nro começa em 1 e cresce de 1 em 1
- C. Inclua várias linhas de dados
- D. Leia cada linha imprimindo segundo o padrão abaixo
- E. ! Numero ! Nome do aluno ! Matricula ! Presença
- 3) Crie um menu que permita cadastrar e ler contatos