Arquivos binários em Python



Documentos relacionados
Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Algoritmos e Programação _ Departamento de Informática

Estruturas de Dados. Profa. Juliana Pinheiro Campos

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

Persistência de Dados

Algoritmos em Javascript

Manipulação de Arquivos

TRIBUNAL DE CONTAS DO ESTADO DO RIO DE JANEIRO SISTEMA INTEGRADO DE GESTÃO FISCAL MÓDULO DELIBERAÇÃO 260/13 MANUAL DE UTILIZAÇÃO

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

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

OPERADORES E ESTRUTURAS DE CONTROLE

Manual de Operação do Sistema de Tickets Support Suite

GUIA BÁSICO DA SALA VIRTUAL

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

INSTALAÇÃO DO CHEF FOODS NET

Secretaria da Educação do Estado do Rio Grande do Sul. Manual: Sistema de Controle Patrimonial Inventário

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Organização de programas em Python. Vanessa Braganholo

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

Controle Patrimonial WEB

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

INFORMÁTICA APLICADA III APOSTILA VISUAL

SISTEMAS OPERACIONAIS II ESPECIFICAÇÃO CAMADA INDEPENDENTE

Introdução à Linguagem

GERAÇÃO DE NOTA FISCAL PAULISTA BEMATECH RESTEQ RESOLVE TECNOLOGIA BEMATECH 1

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Arquitetura de Computadores. Tipos de Instruções

Python Condicionais e Loops. Introdução à Programação SI1

Princípios de funcionamento dos computadores

Manual de digitação de contas Portal AFPERGS

Curso de Programação Computadores

COMPILADORES E INTERPRETADORES

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

Setor de Administração Federal Sul (SAFS), Quadra 8 - Lote 1, Bloco A, sala 510 Brasília DF Telefone: (61)

Software : Sistema Gerenciador DataClarus Dificuldade : ( ) Fácil (X) Médio ( ) Avançado - Página 1 de 5 Instalando duas empresas no mesmo servidor

MANUAL TISS Versão

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

PROG. DE COMPUTADORES II SI Arquivos

MC-102 Algoritmos e Programação de Computadores

Manipulação de Arquivos

Prática 6 ActionScript

Melhor do que driblar os vírus de pendrive, é não pegá-los! Mas como fazer isto?

INSTALAÇÃO DO SAGE 2008 NO WINDOWS XP

Robótica com Arduino

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

Como acessar o novo webmail da Educação? Manual do Usuário. 15/9/2009 Gerencia de Suporte, Redes e Novas Tecnologias Claudia M.S.

Software. LMP Wizard. Manual do usuário MAN-PT-DE-LMPWizard-01.01_12

Para realizar a validação, deve-se seguir o seguinte roteiro: 1- Selecionar, no menu horizontal superior, o link Análise dos Dados.

Procedimento passo a passo para gerar o arquivo da Nota Fiscal Paulista utilizando o aplicativo da Bematech WINMFD2

Anote aqui as informações necessárias:

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

Cadastro Avaliação 2013 Manual de Instruções

MANUAL DO ANIMAIL Terti Software

Fundamentos de Arquivos. SCC203 Algoritmos e Estruturas de Dados II

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Banco de Dados Microsoft Access: Criar tabelas

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

15/8/2007 Gerencia de Tecnologia da Informação Claudia M.S. Tomaz

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Lógica de Programação

Lazarus pelo SVN Linux/Windows

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Gravando CDs Musicais com o Windows Media Player 9

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

Manual SAGe Versão 1.2 (a partir da versão )

MANUAL WEBMAIL HORDE-V.01 IBILCE/UNESP

NOVIDADES DO JAVA PARA PROGRAMADORES C

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Instalação do Java SDK (Software Development Kit)

TÉCNICAS DE PROGRAMAÇÃO

Arquivos. Em relação ao Scilab, existem alguns tipos de arquivos que podem ser lidos, criados ou modificados.

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos.

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Atualização Volare 17 Release 010

MANUAL DO LAUDO DE ANALISE

Resolvendo problemas de conexão de rede wireless no pregão 83/2008

Adapti - Technology Solutions Leonor cardoso nº 331 Fone : (041) Curitiba - PR MANUAL DO USUÁRIO

Manual HDBS Revisão 1.1

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Transferência de Dados entre Computadores

Índice. 1. Introdução Objetivo Clonagem do Sistema Configuração dos Campos... 06

Java e JavaScript. Krishna Tateneni Tradução: Lisiane Sztoltz

Computadores XXI: Busca e execução Final

Transcrição:

Arquivos binários em Python Vamos começar analisando uma estrutura. print "Arquivo aberto!" Antes de tudo, o modo rb tenta abrir um arquivo como binário para leitura. Reveja a tabela: Parâmetro Ação rb Abre um arquivo binário especificado para leitura. O arquivo deve existir previamente. wb Abre um arquivo binário especificado para escrita. Caso o arquivo não exista, este será criado, porém, caso exista, seus dados serão sobrescritos. r+b Abre um arquivo binário especificado para leitura e escrita. O arquivo deve existir previamente, podendo ser alterado. w+b Abre um arquivo binário especificado para escrita e leitura. Caso o arquivo não exista será criado, caso exista, seus dados serão sobrescritos. a+b Abre um arquivo binário especificado no modo Append. Caso o arquivo não exista, será criado, caso exista, os dados serão acrescentados após a sua última linha, não sobrescrevendo-o. Na estrutura acima, utilizamos dois métodos: try e except. O método try, como a sua própria tradução sugere (tentar), tenta executar uma ou mais ações que podem não ser executadas com sucesso. O método except, é utilizado justamente para validar os possíveis erros que impediram as instruções especificadas por try de serem finalizadas com êxito. Utilizamos IOError para validar erros de entrada/saída, consequentemente, a manipulação de arquivos. Voltando à estrutura, o programa tenta abrir o arquivo, e em caso de erro, é retornada uma mensagem de erro. Para fecharmos um arquivo, utilizamos:. Lendo arquivos binários Abaixo temos um exemplo de como retornar o tamanho de um arquivo: print "O tamanho do arquivo e:",tamanho

Veja: => A função arquivo.seek() é utilizada para alterar a posição read/write do código de um arquivo. A sintaxe da função é: arquivo.seek(bloco,[origem]) bloco => Número de bytes para o qual a posição read/write será alterada a partir da origem. origem => Define a posição de onde o bloco de bytes será contado. Embora seja opcional especificar a origem, para esta, temos: Valor Posição 0 Início do arquivo 1 Posição atual 2 Final do Arquivo Portanto, no trecho: ; estamos alterando a posição read/write exatamente para o final do arquivo. E como já sabemos, a última posição de leitura/escrita em um arquivo, indica o tamanho do arquivo em bytes. => Atribuimos à variável tamanho, o valor de retorno da função arquivo.tell() que retorna a posição atual de leitura/escrita no arquivo. Considere o código: # Exemplo: Lendo um arquivo inteiro. buffer = arquivo.read(tamanho) Analisando: => Retorna a posição read/write ao início, para podermos ler o arquivo desde o início. buffer = arquivo.read(tamanho) => Amarzena em um buffer todo o conteúdo do arquivo. A sintaxe da função é: buffer arquivo.read(tamanho) buffer => Buffer no qual o conteúdo será lido. tamanho => Tamanho em bytes do bloco a ser lido. Considere agora o código que lê o arquivo por partes:

#Exemplo: lendo um arquivo por partes chunk = 1024 while arquivo.tell() < tamanho: buffer = arquivo.read(chunk) print "Posicao:",arquivo.tell()," - Total:",tamanho Destacando: chunk = 1024 => Atribuimos a uma variável denominada chunk o valor 1024, que representa o número de bytes a serem lidos por vez. while arquivo.tell() < tamanho: => Enquanto a posição read/write não for a última. buffer = arquivo.read(chunk) => Lê no arquivo,o tamanho especificado pelo chunk, no caso, 1024 bytes. print "Posicao:",arquivo.tell()," - Total:",tamanho => Mostra a posição read/write atual do arquivo e o tamanho do arquivo, a cada loop. Em Python, o tamanho disponível para ser lido (diferença entre posição read/write final e posição read/write atual) é automaticamente calculado. Escrevendo em arquivos binários Veremos agora como escrever em arquivos binários: # Exemplo: escrevendo em um arquivo arquivo = open("arquivo.exe","wb") arquivo.write("hi") Explicando: arquivo = open("arquivo.exe","wb") => Utilizamos o modo wb ao invés de rb; arquivo.write("hi") => A função arquivo.write() é a função inversa à arquivo.read(). Enquanto a última ler dados, arquivo.write() escreve.

Sintaxe: arquivo.write(buffer) buffer => Buffer que contém os dados a serem escritos. Considere o código que lê um arquivo por inteiro em seguida escreve um arquivo com os dados lidos: # Exemplo: lendo e escrevendo em um arquivo inteiro; destino = open("copia.exe","wb") #Erro ao abrir algum dos arquivos buffer = arquivo.read(tamanho) destino.write(buffer) Pontos em destaque: => Abre o arquivo de origem para leitura. destino = open("copia.exe","wb") => Abre o arquivo de destino para escrita. buffer = arquivo.read(tamanho) => Lê o conteúdo do arquivo de origem. destino.write(buffer) => Escreve no arquivo de destino o conteúdo lido. Fecha os arquivos. Abaixo, segue o código que como realizar tal processo, porém lendo e escrevendo um arquivo por partes. # Exemplo: lendo e escrevendo em um arquivo inteiro; destino = open("copia.exe","wb")

chunk = 1024 while arquivo.tell() < tamanho: buffer = arquivo.read(chunk) destino.write(buffer) Acima notamos que a cada loop o programa tenta ler 1024 bytes do arquivo ou então lê a quantidade total disponível, em seguida, escreve esses bytes no arquivo de destino.