Arquivos O QUE É, COMO LER E MANIPULAR

Documentos relacionados
Python: Entrada e Saída. Claudio Esperança

Arquivos. Introdução à Programação SI1

Computação II MAB EE2/ET2/ER2. Manipulação de Arquivos. Brunno Goldstein.

Computação II MAB EPT/EP1. Manipulação de Arquivos. Brunno Goldstein.

Arquivos. Vanessa Braganholo

Arquivos. Vanessa Braganholo

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Arquivos. Leonardo Murta

Trabalhando com Arquivos

9/24/2014. Prof. André Backes

MCG126 Programação de Computadores II

Departamento de Ciência da Computação. Python 3.x Arquivos. Introdução à Ciência da Computação. Prof. Edison Ishikawa

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

Arquivos em C. Material da Prof. Ana Eliza

1/24 FICHEIROS DE TEXTO

Entrada e saída. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Arquivos de Texto UFOP 1/41

LINGUAGEM C: ARQUIVOS

Arquivos. Prof. Alberto Costa Neto Programação em Python

Sumário. Ficheiros. Ficheiros

Faculdade de Computação

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004

Computação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Capítulo 6: Arquivos

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa

CURSO BÁSICO DE PROGRAMAÇÃO AULA 16. Manipulação de arquivos.

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Linguagem de programação Arquivos e tratamento de erros

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

1 O filtro da mediana

Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 25

Arquivos. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC

PROGRAMAÇÃO DE COMPUTADORES

Linguagem C: Introdução

Algoritmos e Estruturas de Dados II IEC013

ESTRUTURA DE DADOS -ARQUIVOS. Prof. Angelo Augusto Frozza, M.Sc.

MCG126 Programação de Computadores II

Arquivos de Texto UFOP 1/31

Introdução à Computação II AULA 08 BCC Noturno - EMA896115B

Este capítulo apresenta as técnicas de manipulação de arquivos texto, binários e suas principais funções de I/O.

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Computação 1 - Python Aula 11 - Teórica. programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 29

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Programação II. Arquivos - Conceito. Arquivos

Estruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Capítulo 06: Arquivos

Outline. 33. Manipulação de arquivos DIM

Existe uma quantidade de informação que pode ser armazenada para resolver o problema.

Introdução à Computação - aulas 13 e 14-

Organização de programas em Python. Vanessa Braganholo

Preparação para Maratona de Informática PYTHON

Referências. Arquivos. Tópicos Principais. Programação de Computadores II. Motivação. Motivação. Abertura de arquivo. Slides da profa.

Algoritmos e Programação

Introdução à Programação

Programação I Aula 13 Manipulação de ficheiros

TCC 00308: Programação de Computadores I Organização de programas em Python

Ambiente de Programação, rastreamento e entrada de dados. MCG114 Programação de Computadores I. Interpretador de Comandos. Interpretador de Comandos

Programação de Computadores

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Introdução à Programação Aula 13 Manipulação de ficheiros

Aula 26: Arquivos de texto

Aula 28: Arquivos de texto

Aula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos

USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Linguagem de Programação C. Arquivos

Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Aula de Arquivos. Jesimar da Silva Arantes. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Computação Eletronica: Arquivos (Introdução)

CETEC Centro Paula Souza

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Introdução ao Fortran 90-7

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

INF1005: Programação 1. Arquivos. 02/05/10 (c) Paula Rodrigues 1

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos

O Proteo permite que programas PLC e CNC acessem dados armazenados em tabelas, para apenas leitura.

Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

GEQ Prof. Paulo R. Coelho. Lista para prova

Arquivos em C. Notas de Aula. Prof. Francisco Rapchan

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2005/2006

Programação para Computação 13ª Aula

Aula 16: Manipulação de Arquivos em C

Fundamentos de Lógica e Algoritmos. Aula 3.2 IDLE, Variáveis e Tipos. Prof. Dr. Bruno Moreno

Sistemas de Arquivos. (Aula 23)

Mestrado em Engenharia Física Tecnológica

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Transcrição:

Arquivos O QUE É, COMO LER E MANIPULAR

Arquivos Variáveis oferecem armazenamento de dados temporariamente Os dados são perdidos quando o escopo da variável é finalizado ou quando o programa termina Arquivos são usados para retenção permanente de um grande conjunto de dados, mesmo depois que o programa que criou os dados termina Dados mantidos em arquivos são chamados de dados persistentes Computadores guardam arquivos em dispositivos de armazenamento secundário, tais como o HD, pen drive, DVD (alguém ainda usa?) Em Python, um arquivo pode ser lido/escrito por meio de um objeto da classe File

Arquivos default Sem saber, já utilizamos três arquivos default: Sempre que um comando print é executado, na verdade o resultado é direcionado para um arquivo chamado sys.stdout Sempre que lemos um dado através do comando input, na verdade estamos lendo de um arquivo chamado sys.stdin Mensagens de erro ou de rastreamento de exceções são enviadas para um arquivo chamado sys.stderr

Exemplo >>> import sys >>> sys.stdout.write( Hello ) Hello >>> print Hello Hello >>> sys.stdin.readline() UFRJ UFRJ\n Na tela aparece UFRJ e uma quebra de linha >>> input() UFRJ UFRJ o input ignora as quebras de linhas >>> raw_input() UFRJ UFRJ é um input já preparado para String. Quebras de linha também são ignoradas

Abrindo arquivos Open (name, mode, buffering) name: nome do arquivo a abrir mode (opcional): modo de abertura r: Read. Leitura (Este é o modo default) w: Write. Escrita a: Append. Escrita a partir do final +: Utilizado junto com r. Indica leitura e escrita buffering (opcional): indica se a memória (buffer) é usada para acelerar as operações de entrada e saída 0: buffers não são usados 1 (ou qualquer número negativo): buffer de tamanho padrão (default) 2 ou maior: tamanho do buffer em bytes

O objeto File O comando open retorna um objeto do tipo File (arquivo) O objeto retornado é usado subsequentemente para realizar operações de entrada e saída: >>> arq = open ( arquivo_teste.txt, w ) >>> arq.write ("Oi") >>> arq.close () >>> arq = open ( arquivo_teste.txt ) >>> x = arq.read() >>> print x Oi

Métodos Read, Write e Close read(num) Lê num bytes do arquivo e os retorna numa string Se num não é especificado, todos os bytes desde o ponto atual até o fim do arquivo são retornados Ou seja, se utilizado somente read() logo após abrir o arquivo, irá ler o arquivo inteiro do início ao fim write(string) Escreve string no arquivo Devido ao uso de buffers, a escrita pode não ser feita imediatamente Use o método flush() ou close() para assegurar a escrita física

Métodos Read, Write e Close close() Encerra o uso do arquivo para operações de leitura e escrita Se existir alguma escrita pendente no buffer, força a escrita imediata para após fechar o arquivo

Convenção de quebra de linha Arquivos de texto são divididos em linhas usando caracteres especiais Linux/Unix: \n Windows: \r\n Mac: \r Python usa sempre \n para separar linhas Ao se ler ou escrever um arquivo aberto em modo texto, o interpretador Python traduz o \n para se adequar ao sistema operacional em que está sendo utilizado

Lendo e escrevendo linhas readline(n) Se n não é especificado, retorna exatamente uma linha lida do arquivo Caso contrário, lê no máximo n caracteres readlines() retorna uma lista de strings com o restante do conteúdo do arquivo. Atenção: Nenhum método de leitura retira quebra de linha

Lendo e escrevendo linhas Ao ler um arquivo que tenha quebra de linha os caracteres especiais podem vir junto Tais caracteres podem ser removidos com strip(), lstrip() ou rstrip() write(string) Escreve uma string no arquivo writelines(sequência) Escreve a lista (ou qualquer sequência) de strings, uma por uma no arquivo. Caracteres terminadores de linha não são acrescentados

Lendo um arquivo inteiro def copiaarquivo (velhoarquivo, novoarquivo): f1 = open(velhoarquivo, "r") f2 = open(novoarquivo, "w") while True: texto = f1.readline() # lê a linha inteira if texto == : # chegou no fim do arquivo break f2.write(texto) f1.close() f2.close() return

Dicas Um for sobre um arquivo de leitura nos permite iterar sobre cada linha do arquivo por vez for linha in arq: print linha Podemos, de uma só vez, ler e numerar as linhas for i, linha in enumerate(arq): print i + 1, linha

Exercícios 1) Escreva uma função que receba dois nomes de arquivos. O primeiro é o arquivo original que deve ser lido. O segundo deve ser gerado a partir do primeiro. Porém, o arquivo original contém algumas linhas que se iniciam com o caractere #. Essas linhas não devem estar presentes no arquivo que será gerado.

Exercícios 2) Faça um programa que recebe o nome de um arquivo contendo uma lista de IP s. O programa deve ler esse arquivo e gerar um outro arquivo chamado relatório_ips.txt indicando ao final de cada linha se o IP é válido ou inválido. O formato de um endereço IP válido é x.y.y.y, onde x vai de 1 a 255 e y vai de 0 a 255.

Pickling Arquivos são basicamente cadeias de caracteres, portanto para colocar valores numéricos em um arquivo, é necessário convertê-los para strings: >>> arq = open( meu_arquivo.txt, w ) >>> arq.write(10) Erro! >>> arq.write(str(12.3)) Ok! >>> arq.write(str([4,5,6])) Ok!

Pickling PROBLEMA! Quando você lê o valor a partir do arquivo, você tem uma string O tipo original da informação foi perdido >>> arq = open( meu_arquivo.txt, r ) >>> arq.readline() '12.3[1, 2, 3] SOLUÇÃO: Pickling

Pickling >>> import pickle >>> f = open( teste.pck, w ) Para armazenar uma estrutura de dados, use o método dump e então feche o arquivo do modo usual: >>> pickle.dump(40.2, f) >>> pickle.dump([7,8,9], f) >>> f.close() Um arquivo pickle não consegue ser lido por seres humanos Para recuperar o que escrevemos, utiliza-se o método load

Pickling Recuperando as estruturas: >>> f = open('teste.pck', 'r') >>> x = pickle.load(f) >>> print x 40.2 O método load lê uma linha, análogo ao readline() >>> type(x) <type 'float'> Método type identifica o tipo do dado armazenado >>> y = pickle.load(f) Lendo a segunda linha >>> print y [7, 8, 9] >>> type(y) <type 'list >

Exercícios 3) Você irá criar um programa que permite que o usuário insira um número. Sempre que ele inserir coloque esse número numa lista e gere um número aleatoriamente e coloque-o numa outra lista. Ao escolher encerrar o programa salve essas listas com o Pickle para poder continuar outro dia. As opções do usuário são: 1: Inserir um número de 1 a 50 2: Visualizar os números inseridos 3: Visualizar os números gerados 4: Visualizar a média total 5: Encerrar programa