Escolar Documentos
Profissional Documentos
Cultura Documentos
Waldemar Pires
adaptado
Ceça Moraes – cecafac@gmail.com
Computação LP2
1
Conteúdo
• Arquivos
– Conceitos
– Operações
– Métodos
– Exercícios
2
Arquivos
• Entrada e saída são operações de
comunicação de um programa com o
mundo externo
• Essa comunicação se dá usualmente
através de arquivos
• Em Python, um arquivo pode ser
lido/escrito através de um objeto da
classe file
3
Arquitetura Básica de um
Computador
Até agora, toda a
informação
armazenada por
nossos programas
estava na memória
RAM, que é rápida,
porém, volátl.
Hoje aprenderemos
armazenar
informação na
memória secundária
(disco), que é lenta,
porém, persistente.
Arquivo
• Elemento de informação armazenado na memória secundária
(disco) do computador
• Característcas:
– Informações persistem após o fechamento dos programas e até
mesmo após o desligamento (seguro) do computador;
– Atribuem-se nomes aos elementos de informação (arquivos e
diretórios), em vez de endereços de memória;
– Acesso às informações é mais lento.
Modos de Acesso a Arquivos
– Modo Texto: Ex.: código fonte (texto)
• Caracteres que podem ser lidos por
pessoas
• Ex.: Código fonte de um programa
(Cubo.c)
• Outros exemplos: .txt, .bat, .cpp, .h
>>> f.close()
12
Métodos Read, Write e
Close
• read(num)
– Lê num bytes do arquivo e os retorna numa
string
– Se num não é especifcado, todos os bytes
desde o ponto atual até o fm do arquivo
são retornados
13
Métodos Read, Write e
Close
• write(string)
– Escreve string no arquivo
– Devido ao uso de bufers, a escrita pode
não ser feita imediatamente
• Use o método flush() ou close()
para assegurar a escrita fsica
• close()
– Termina o uso do arquivo para operações
de leitura e escrita 14
ExemploRead
>>> f = open(‘texto.txt',‘r‘)
>>> ler = f.read()
>>> f.close()
>>> print( ler)
Ola Mundo!
17
Fim de Linha
• Arquivos de texto são divididos em linhas
usando caracteres especiais
• Python usa sempre \n para separar
linhas
– Leitura ou escrita de arquivo aberto em
modo texto
– Em modo binário, entretanto, a conversão
não é feita
18
Lendo e Escrevendo
Linhas
• readline(n)
– Se n não é especifcado, retorna
exatamente uma linha lida do arquivo
– Caso contrário, lê uma linha, mas busca no
máximo n caracteres pelo fnal de linha
– Se o tamanho da linha é zero signifca que o
final do arquivo foi atngido
19
Lendo e Escrevendo
Linhas
• readlines(n)
– Se n não é especifcado, retorna o restante
do conteúdo do arquivo em uma lista de
strings
– Caso n seja especifcado, a leitura é limitada
a n caracteres no máximo
20
Lendo e Escrevendo
Linhas
• writelines(lista)
– Escreve a lista (ou qualquer seqüência)
de strings, uma por uma no arquivo
21
Exemplos
• adicionar mais alguma coisa no arquivo do
exemplo:
>>> f = open(‘texto.txt’, ‘a‘)
>>> f.write('\nOla Python')
>>> f.close()
• o 'a' (append) é usado para adicionar texto
sem apagar o que ja havia no arquivo
• '\n' é usado pra pular uma linha, lembrando
que tudo é string ( este caractere fca visível)22
Exemplos
>>> f = open(‘texto.txt',‘r‘)
>>> linha1 = f.readline()
>>> linha2 = f.readline()
>>> f.close()
>>> print (linha1)
Ola Mundo!\n
>>> print (linha2)
Ola Python
23
Exemplos
24
Resumo
operação Interpretação
output = open(“c:/teste.txt”,”w”) Cria arquivo de saída (“w” signifca gravação)
input = open(“c:/teste.txt”,”r”) Cria arquivo de entrada (“r” signifca leitura)
S = input.read() Lê o arquivo inteiro em uma única string
S = input.read(N) Lê N byte (1 ou mais)
S = input.readline() Lê a próxima linha
L = input.readlines() Cria uma lista onde cada elemento é uma linha
do arquivo
output.write(S) Grava a string S no arquivo
output.writelines(L) Grava no arquivo todas as strings da lista L
output.close() Fechamento manual do arquivo
25
EXERCÍCIOS
26
Exercícios
1. Escreva um programa que lê um arquivo contendo a
identdade e o nome de várias pessoas, no seguinte
formato
5384423 Manoel
4345566 Alberto
3235574 Mariana
...
o programa deve colocá-los em duas listas disttas
27
Exercícios
2. Escreva um programa que lê um arquivo contendo
endereços IPs, da seguinte forma:
200.135.80.9
192.168.1.1
8.35.67.74
257.32.4.5
85.345.1.2
1.2.3.4
9.8.234.5
192.168.0.256
• O programa deve mostrar os IPS indicando os que
são validos e inválidos (um endereço ip válido não
pode ter uma de suas partes maior que 224).
28
Exercícios
3. Crie um programa que lê um dicionário
que é uma agenda contendo várias
ocorrências dos seguintes dados:
chave, nome, idade, telefone. O
programa deve escrever todos os itens
do dicionário em um arquivo no
seguinte formato chave: nome-idade-
fone.
29
Exercícios
4. Faça um programa que leia um número qualquer de
notas em um arquivo. Após a leitura dos dados, faça
o seguinte:
– Mostre a quantdade de notas que foram lidas.
– Exiba todas as notas na ordem em que foram
informadas.
– Exiba todas as notas na ordem inversa à que
foram informadas, uma abaixo do outra.
– Calcule e mostre a soma das notas.
– Calcule e mostre a média das notas.
– Calcule e mostre a quantdade de notas acima da
média calculada. 30
Exercícios
5. Inicialize uma lista de 20 números inteiros.
Armazene os números pares em uma lista
PAR e os números ímpares em uma lista
IMPAR. Salve as listas PAR e IMPAR em um
arquivo.
6. Faça um programa que leia a temperatura
média de cada mês do ano em um arquivo e
armazene-as em uma lista. Em seguida,
calcule a média anual das temperaturas e
mostre a média calculada juntamente com
todas as temperaturas acima da média anual,
e em que mês elas ocorreram (mostrar o mês
por extenso: 1 – Janeiro, 2 – Fevereiro, . . . ).31
Bibliografa
Livro “Como pensar como um Cientsta de Computação
usando Python” – Capítulo 11
htp://pensarpython.incubadora.fapesp.br/portal
Python Tutorial
htp://www.python.org/doc/current/tut/tut.html
Dive into Python
htp://www.diveintopython.org/
Python Brasil
htp://www.pythonbrasil.com.br/moin.cgi/Documenta
caoPython#head5a7ba2746c5191e7703830e02d0f532
8346bcaac
32