Limpou toda a página
 
(33 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()'''
** Antes disso, temos que abrir o arquivo, dessa vez com a opção r
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" novamente é 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()
* 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>
* 2. Método readline( )
** O arquivo "tarefas.txt" será lido pelo método '''readline()'''
** 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. Limpar canil02. Lavar churrasqueira03. Trocar lâmpadas da sala04. Cortar grama05. Consertat maçaneta  da porta06. Levar Summer para passear07. Fazer compras no mercado08. Pagar mensalidade do clube09. Configurar modem10. 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
<br>

Edição atual tal como às 11h58min de 3 de abril de 2017