Limpou toda a página
 
(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>

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