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

Documentos relacionados
A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

Motivação Programar? Prof. Alberto Costa Neto Programação em Python

Variáveis, Expressões e Comandos. Prof. Alberto Costa Neto Programação em Python

Dicionários. Prof. Alberto Costa Neto Programação em Python

Funções. Prof. Alberto Costa Neto Programação em Python

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

Algoritmos e programação

Organização de programas em Python. Vanessa Braganholo

Python: Comandos Básicos. Claudio Esperança

Arte em ASCII. Introdução: Python

Estruturas de Repetição

Usando o do-file editor Automatizando o Stata

Refinando a Formatação de Saída

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Introdução. <<voltar Tutorial Epi Info. Índice

Atualizações de Software Guia do Usuário

Conceitos básicos da linguagem C

ALGORITMOS E FLUXOGRAMAS

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Comandos de repetição while

De novo, vamos começar pelas funções mais básicas, testá-las e depois usá-las em funções mais complexas.

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

QUITETURA AVANÇADA DE SISTEMAS

Curso de Programação Computadores

ROBERTO OLIVEIRA CUNHA

Click the + sign to add new server details. Clique no sinal de "+" para adicionar novos detalhes do servidor. Enter a friendly name for your BI Server

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TÉCNICO EM INFORMÁTICA DISCIPLINA:

Apresentação da Disciplina de Programação de Computadores I. Vanessa Braganholo

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

MATEMÁTICA REPLAY! matematicareplay.wordpress.com. Christine Córdula Dantas - 16/03/12. Números Racionais, Frações e Representações em Figuras

Para criar uma nova apresentação: 1.Escolha a opção Apresentação em Branco Clique no botão Ok

INF 1007 Programação II

WINDOWS EXPLORER. O organizador

Introdução ao STATA vs. 9 (Banco de Dados)

2 Pesquisa de valores em uma lista de dados

COMANDO DA AERONÁUTICA ESCOLA DE ESPECIALISTAS DE AERONÁUTICA SUBDIVISÃO DE ADMISSÃO E DE SELEÇÃO

EDITORES DE TEXTO CAPÍTULO 5. Definição

MANUAL ARRECADAWEB. Versão 1.0

Organização de Computadores Software

INFORMÁTICA BÁSICA. Word. Professor: Enir da Silva Fonseca

Oficina de Programação em Python direcionada para o desenvolvimento de jogos

Representação de Algoritmos - Linguagens de Programação

Luciano Ramalho setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python

Incorporando JavaScript em HTML

Como padronizar as suas routerboards e atualiza-las todas ao mesmo tempo?

Movie Maker. Fazer download de vídeos no You Tube. Para publicar no You Tube. O Windows Movie Maker 2 torna fácil para qualquer pessoa

Aprendendo Python na Prática. Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

MANUAL DA SECRETARIA

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Ruby. Simplicidade e produtividade

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais.

Capítulo 15. INICIALIZAÇÃO, TEMPO DE CPU E DOS

1º PASSO: CRIE NO SEU COMPUTADOR UMA PASTA PARA O SEU PROJETO 2º PASSO: CONHEÇA O MOVIE MAKER

MOODLE NA PRÁTICA PEDAGÓGICA

UNIPAMPA Universidade Federal do Pampa. Núcleo de Tecnologia da Informação (NTI)

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Arquivos binários em Python

CONFIGURAÇÃO MINIMA EXIGIDA:

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Lista de Exercícios Fluxograma, Estruturas de Sequência e Decisão Prof: Yuri Frota

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

Laboratório de Redes de Computadores e Sistemas Operacionais

Treinamento em BrOffice.org Writer

Capítulo 14. ARQUIVOS DE SAÍDA, DE ENTRADA E INTERNOS

TRABALHANDO COM ARQUIVOS ENTRADAS/SAÍDAS (I/O) DE DADOS

Manual de Orientação para Acesso e Uso do SARA Versão ERA s

Instalação do Sirius sem estações. O primeiro passo é instalar o Firebird 1.5, ele se encontra no CD de instalação do Sirius na pasta Firebird.

9 Comandos condicionais

JavaScript (ou JScript)

O QUE É A CENTRAL DE JOGOS?

1 Funções básicas de implementação de arquivos

Banco de Dados. Microsoft Access. Índice

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

Projeto 1 - Bootloader

5 Apresentando a linguagem C

Trabalho 3: Agenda de Tarefas

Manual do usuário Neo Protocolo Free

3. Estruturas de seleção

Aula 4: adivinhe o número

Especificações. Conteúdo. Compatibilidade de Tags com o GPW-100. Tabela de Revisões

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual

Manual do Usuário. Sistema para Administração de Condomínios MANUAL USUÁRIO. Bancos do Condomínio. ENG Sistemas - 1 -

Utilizando subversion como controle de versão

Apostilas OBJETIVA Atendente Comercial / Carteiro / Op. Triagem e Transbordo CORREIOS - Concurso Público º CADERNO. Índice

Instalando e Licenciando

Python: Módulos. Claudio Esperança

Recursos Educativos Digitais. Oficina de formação. Formadora: Anabela Triguinho

Manual de Utilização do PDV Klavix

Manual de Operação do Multiconta Drive / Delivery

Transcrição:

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

Dispositivos de Entrada e Saída Software Unidade Central de Processamento Próximo comando? Computador Genérico Arquivos ficam aqui! Memória Secundária if x < 3: print Memória Principal From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 Return-Path: <postmaster@collab.sakaiproject.org> Date: Sat, 5 Jan 2008 09:12:18-0500To: source@collab.sakaiproject.orgfrom: stephen.marquard@uct.ac.zasubject: [sakai] svn commit: r39772 - content/branches/details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772...

Processamento de Arquivos Podemos imaginar um arquivo como uma seqüência de linhas contendo caracteres From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 Return-Path: <postmaster@collab.sakaiproject.org> Date: Sat, 5 Jan 2008 09:12:18-0500 To: source@collab.sakaiproject.org From: stephen.marquard@uct.ac.za Subject: [sakai] svn commit: r39772 - content/branches/ Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772 http://www.py4inf.com/code/mbox-short.txt

Abrindo um Arquivo Antes que possamos ler o conteúdo do arquivo, precisamos informar ao Python com qual arquivo queremos trabalhar e o que desejamos fazer com ele (ler e/ou escrever) Isto é feito pela função open() open() retorna um manipulador de arquivo (handle) - uma variável que é usada para executar operações em um arquivo Similar a acionar Arquivo -> Abrir em um Editor de Texto

Usando open() handle = open(nome, modo) arq = open('mbox.txt', 'r') > Retorna um manipulador de arquivo (handle) > nome é uma string que identifica o arquivo a ser aberto > modo é opcional e deve ser 'r' se o objetivo é ler (read) ou 'w' se pretende-se escrever (write) no arquivo

O que é um manipulador de arquivo (handle)? >>> fhand = open('mbox.txt') >>> print fhand <open file 'mbox.txt', mode 'r' at 0x1005088b0>

E quando o arquivo não existe? >>> fhand = open('dados.txt') Traceback (most recent call last): File "<stdin>", line 1, in <module>ioerror: [Errno 2] No such file or directory: 'dados.txt'

O caractere newline Usamos um caractere especial chamado newline para indicar o final de uma linha Ele é representado em uma string com um \n newline é um único caractere (não são 2!) >>> dados = 'Hello\nWorld!' >>> dados 'Hello\nWorld!' >>> print dados Hello World! >>> dados = 'X\nY' >>> print dados X Y >>> len(dados) 3

Processamento de Arquivos Podemos imaginar um arquivo como uma seqüência de linhas contendo caracteres From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 Return-Path: <postmaster@collab.sakaiproject.org> Date: Sat, 5 Jan 2008 09:12:18-0500 To: source@collab.sakaiproject.org From: stephen.marquard@uct.ac.za Subject: [sakai] svn commit: r39772 - content/branches/ Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772 http://www.py4inf.com/code/mbox-short.txt

Processamento de Arquivos Um arquivo texto tem caracteres newline no final de cada linha From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008\n Return-Path: <postmaster@collab.sakaiproject.org>\n Date: Sat, 5 Jan 2008 09:12:18-0500\n To: source@collab.sakaiproject.org\n From: stephen.marquard@uct.ac.za\n Subject: [sakai] svn commit: r39772 - content/branches/\n \n Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772\n

Handle como uma Seqüência Um handle de arquivo aberto para leitura pode ser tratado como uma seqüência de strings onde cada linha do arquivo é uma string na seqüência Podemos usar o comando for para iterar na seqüência fileh = open('mbox.txt') for linha in fileh: print linha Lembre-se que uma seqüência é um conjunto ordenado

Contando Linhas de um Arquivo Abrir o arquivo somente para leitura (read-only) Usar um laço for para ler cada linha Contar as linhas (incrementando o contador a cada iteração) e imprimir as linhas e imprimir o número de linhas arq = open('mbox.txt') cont = 0 for linha in arq: cont = cont + 1 print 'Linhas:', cont $ python contar.py Linhas: 132045

Lendo um Arquivo por completo Podemos ler o arquivo completo (com quebra de linhas e tudo) para uma única string >>> arq = open('mbox-short.txt') >>> conteudo = arq.read() >>> print len(conteudo) 94626 >>> print conteudo[:20] From stephen.marquar

OPA! O que estas linhas em branco estão fazendo aqui? From: stephen.marquard@uct.ac.za From: louis@media.berkeley.edu From: zqian@umich.edu From: rjlowe@iupui.edu...

Atenção com a quebra de linha! O que estas linhas em branco estão fazendo aqui? Cada linha do arquivo tem um caractere newline (\n) no final O comando print acrescenta um caractere newline após imprimir o valor From: stephen.marquard@uct.ac.za\n \n From: louis@media.berkeley.edu\n \n From: zqian@umich.edu\n \n From: rjlowe@iupui.edu\n \n...

Buscando em um Arquivo (corrigido) Podemos tirar espaços em branco do lado direito de uma string com a função rstrip() O caracter newline (\n) é considerado espaço em branco e é retirado arq = open('mbox-short.txt') for linha in arq: linha = linha.rstrip() if linha.startswith('from:') : print linha From: stephen.marquard@uct.ac.za From: louis@media.berkeley.edu From: zqian@umich.edu From: rjlowe@iupui.edu...

Pulando iterações com continue Durante a leitura de um arquivo, pode ocorrer de termos que ignorar a linha lida, ou seja, não fazer nada com ela. O comando continue dentro de um comando if podem ser usados nesta situação arq = open('mbox-short.txt') for linha in arq: linha = linha.rstrip() if not linha.startswith('from:') : continue print linha

Usando in para selecionar linhas Podemos buscar uma string em uma linha usando o in na linha como critério de seleção arq = open('mbox-short.txt') for linha in arq: linha = linha.rstrip() if not '@uct.ac.za' in linha : continue print linha From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 X-Authentication-Warning: set sender to stephen.marquard@uct.ac.za using f From: stephen.marquard@uct.ac.za Author: stephen.marquard@uct.ac.za From david.horwitz@uct.ac.za Fri Jan 4 07:02:32 2008 X-Authentication-Warning: set sender to david.horwitz@uct.ac.za using -f...

nome = raw_input('digite o nome do arquivo: ') arq = open(nome) cont = 0 for linha in arq: if linha.startswith('subject:') : cont = cont + 1 print 'Ha', cont, 'linhas com Subject: em', nome Prompt para obter o Nome Digite o nome do arquivo: mbox.txt Ha 1797 linhas com Subjec: em mbox.txt Digite o nome do arquivo: mbox-short.txt Ha 27 linhas com Subjec: em mbox-short.txt

Arquivos não encontrados nome = raw_input('nome do arquivo: ') try: arq = open(nome) except: print 'Erro ao abrir o arquivo:', nome exit() cont = 0 for linha in arq: if linha.startswith('subject:') : cont = cont + 1 print 'Ha', cont, 'linhas com Subject: em', nome Nome do arquivo: mbox.txt Ha 1797 linhas com Subject: em mbox.txt Nome do arquivo: bla bla bla Erro ao abrir o arquivo: bla bla bla

Buscando em um Arquivo Podemos usar um comando if dentro de um comando for para imprimir apenas as linhas que atendem a um certo critério arq = open('mbox-short.txt') for linha in arq: if linha.startswith('from:') : print linha

Gravando um arquivo Para gravar um arquivo, basta abrir no modo escrita e usar o método write quantas vezes for necessário para gravar strings no arquivo arq = open('mbox-short.txt') arq2 = open('mbox-short2.txt','w') for linha in arq: linha = linha.rstrip() if not '@uct.ac.za' in linha : continue arq2.write(linha + '\n') From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 X-Authentication-Warning: set sender to stephen.marquard@uct.ac.za using f X-Authentication-Warning: set sender to david.horwitz@uct.ac.za using -f...

Acknowledgements / Contributions Agradecimentos / Contribuições These slides are Copyright 2010- Charles R. Severance ( www.dr-chuck.com) of the University of Michigan School of Information and open.umich.edu and made available under a Creative Commons Attribution 4.0 License. Please maintain this last slide in all copies of the document to comply with the attribution requirements of the license. If you make a change, feel free to add your name and organization to the list of contributors on this page as you republish the materials.... Initial Development: Charles Severance, University of Michigan School of Information These slides were translated and adapted by Alberto Costa Neto (albertocn.sytes.net) of the Federal University of Sergipe