SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Python:
Entrada e Saída



  Claudio Esperança
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
 Arquivos estão associados a dispositivos
      Por exemplo, disco, impressora, teclado
 Em Python, um arquivo pode ser lido/escrito através de
  um objeto da classe file
Arquivos default
 Já usamos, sem saber, três arquivos default
    Sempre que um comando print é executado, o resultado
     vai para um arquivo chamado sys.stdout
    Sempre que lemos um dado através do comando input ou
     raw_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("alo")
alo
>>> print "alo"
alo
>>> sys.stdin.readline()
sfadfas
'sfadfasn'
>>> raw_input()
fasdfadsf
'fasdfadsf'
Redirecionamento
 Os arquivos sys.stdin, sys.stdout e sys.stderr
  normalmente estão associados ao teclado e ao display do
  terminal sendo usado, mas podem ser reassociados a outros
  dispositivos
    Em Unix/Linux e Windows:
           programa > arquivo
              Executa programa redirecionando stdout para arquivo
           programa < arquivo
              Executa programa redirecionando stdin de arquivo
           programa1 | programa2
              Executa programa1 e programa2 sendo que a saída de
               programa1 é redirecionanda para a entrada de programa2
      Em Linux com shell bash
           programa 2> arquivo
              Executa programa redirecionando stderr para arquivo
Abrindo arquivos
 open (name, mode, buffering)
    name : nome do arquivo a abrir
    mode : (opcional) modo de abertura – string contendo
           r : leitura (default)
           w : escrita
           b : binário
           a : escrita a partir do final
           + : (usado com r) indica leitura e escrita
      buffering : (opcional) indica se memória (buffers) é usada
       para acelerar operações de entrada e saída
           0 : buffers não são usados
           1 (ou qq número negativo): um 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)
      Na verdade, em Python 2.4 em diante, open é o mesmo
       que file, e portanto o comando é um construtor
 O objeto retornado é usado subseqüentemente para
  realizar operações de entrada e saída:
   >>> arq = open ("teste", "w")
   >>> arq.write ("Oi")
   >>> arq.close ()
   >>> arq = open ("teste")
   >>> x = arq.read()
   >>> 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 rretornados
 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
 close()
    Termina o uso do arquivo para operações de leitura e
     escrita
Convenção de fim de linha
 Arquivos de texto são divididos em linhas usando
  caracteres especiais
      Linux/Unix: n
      Windows: rn
      Mac: r
 Python usa sempre n para separar linhas
    Ao se ler/escrever um arquivo aberto em modo texto (não
     binário) faz traduções de n para se adequar ao sistema
     operacional
    Em modo binário, entretanto, a conversão não é feita
Interação com o Sistema
                Operacional
 Operações de entrada e saída são na verdade realizadas
  pelo sistema operacional
 O módulo os possui diversas variáveis e funções que
  ajudam um programa Python a se adequar ao sistema
  operacional, por exemplo:
      os.getcwd() retorna o diretório corrente
      os.chdir(dir) muda o diretório corrente para dir
      os.sep é uma string com o caractere que separa
       componentes de um caminho ('/' para Unix, '' para
       Windows)
      os.path.exists(path) diz se path se refere ao nome de
       um arquivo existente
Lendo e escrevendo linhas
 readline(n)
    Se n não é especificado, retorna exatamente uma linha lida
     do arquivo
    Caso contrário, lê uma linha, mas busca no máximo n
     caracteres pelo final de linha
 readlines(n)
    Se n não é especificado, retorna o restante do conteúdo do
     arquivo em uma lista de strings
    Caso n seja especificado, a leitura é limitada a n caracteres
     no máximo
 writelines(seqüência)
      Escreve a lista (ou qualquer seqüência) de strings, uma
       por uma no arquivo
      Caracteres terminadores de linha não são
       acrescentados
Acesso direto
 É possível ler e escrever não seqüencialmente em alguns
  tipos de arquivo
      Devem estar associados a dispositivos que permitem
       acesso direto, como discos, por exemplo
 seek(offset,whence)
    offset indica o número do byte a ser lido e escrito pela
     próxima operação de entrada e saída
    whence indica a partir de onde offset será contado
           0 (default) : do início
           1 : do ponto corrente
           2 : do final
 tell()
    Indica a posição corrente (número de bytes a partir do início
     do arquivo)

Contenu connexe

Tendances

Apostila de comandos linux resumidos (universidade católica de brasília)
Apostila de comandos linux   resumidos (universidade católica de brasília)Apostila de comandos linux   resumidos (universidade católica de brasília)
Apostila de comandos linux resumidos (universidade católica de brasília)
SENAC RIO
 
Cap1 exercicios comandos linux resolucao part i
Cap1 exercicios comandos linux   resolucao part iCap1 exercicios comandos linux   resolucao part i
Cap1 exercicios comandos linux resolucao part i
portal_Do_estudante
 
Shell script ii direcionadores
Shell script ii  direcionadoresShell script ii  direcionadores
Shell script ii direcionadores
Carlos Melo
 
Introdução a Java IO
Introdução a Java IOIntrodução a Java IO
Introdução a Java IO
rdgse
 

Tendances (18)

Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Apostila de comandos linux resumidos (universidade católica de brasília)
Apostila de comandos linux   resumidos (universidade católica de brasília)Apostila de comandos linux   resumidos (universidade católica de brasília)
Apostila de comandos linux resumidos (universidade católica de brasília)
 
Comandos Shell
Comandos ShellComandos Shell
Comandos Shell
 
Cap1 exercicios comandos linux resolucao part i
Cap1 exercicios comandos linux   resolucao part iCap1 exercicios comandos linux   resolucao part i
Cap1 exercicios comandos linux resolucao part i
 
Estrutura de diretorios
Estrutura de diretoriosEstrutura de diretorios
Estrutura de diretorios
 
Cap1 exercicios comandos linux
Cap1 exercicios comandos linuxCap1 exercicios comandos linux
Cap1 exercicios comandos linux
 
Manual comandos
Manual comandosManual comandos
Manual comandos
 
Comandos Unix
Comandos UnixComandos Unix
Comandos Unix
 
Comandos basicos linux
Comandos basicos linuxComandos basicos linux
Comandos basicos linux
 
Elementos do Sistema Operacionais
Elementos do Sistema OperacionaisElementos do Sistema Operacionais
Elementos do Sistema Operacionais
 
Obtendo ajuda no Linux
Obtendo ajuda no LinuxObtendo ajuda no Linux
Obtendo ajuda no Linux
 
SAC - Aula 1
SAC - Aula 1SAC - Aula 1
SAC - Aula 1
 
Ficheiros texto
Ficheiros textoFicheiros texto
Ficheiros texto
 
Soa#cap4.1 gestor de pacotes
Soa#cap4.1   gestor de pacotesSoa#cap4.1   gestor de pacotes
Soa#cap4.1 gestor de pacotes
 
Shell script ii direcionadores
Shell script ii  direcionadoresShell script ii  direcionadores
Shell script ii direcionadores
 
Java Básico :: Stream
Java Básico :: StreamJava Básico :: Stream
Java Básico :: Stream
 
Introdução a Java IO
Introdução a Java IOIntrodução a Java IO
Introdução a Java IO
 
Shell Script - Controle de fluxo
Shell Script - Controle de fluxoShell Script - Controle de fluxo
Shell Script - Controle de fluxo
 

Similaire à Programando em python arquivos

Arquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em JavaArquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em Java
Wilson Júnior
 
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Luiz Arthur
 
13 programando em python - arquivos
 13   programando em python - arquivos 13   programando em python - arquivos
13 programando em python - arquivos
Victor Marcelino
 

Similaire à Programando em python arquivos (20)

http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Entrada e Saída
Entrada e SaídaEntrada e Saída
Entrada e Saída
 
Java 15
Java 15Java 15
Java 15
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
Comandos básicos Linux.docx
Comandos básicos Linux.docxComandos básicos Linux.docx
Comandos básicos Linux.docx
 
Arquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em JavaArquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em Java
 
Workshop Python.2
Workshop Python.2Workshop Python.2
Workshop Python.2
 
Linux-formatado.pdf
Linux-formatado.pdfLinux-formatado.pdf
Linux-formatado.pdf
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
 
Comandos básicos linux
Comandos básicos linuxComandos básicos linux
Comandos básicos linux
 
Operadores de redirecionamento
Operadores de redirecionamentoOperadores de redirecionamento
Operadores de redirecionamento
 
13 programando em python - arquivos
 13   programando em python - arquivos 13   programando em python - arquivos
13 programando em python - arquivos
 
725
725725
725
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
 
Laboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoLaboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em disco
 

Plus de samuelthiago

Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_v
samuelthiago
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_iv
samuelthiago
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iii
samuelthiago
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_ii
samuelthiago
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_i
samuelthiago
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
samuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
samuelthiago
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
samuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
samuelthiago
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
samuelthiago
 

Plus de samuelthiago (20)

Eclipse i (1)
Eclipse i (1)Eclipse i (1)
Eclipse i (1)
 
Html básico
Html básicoHtml básico
Html básico
 
Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_v
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_iv
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iii
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_ii
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_i
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
 
Java 08
Java 08Java 08
Java 08
 
Java 07
Java 07Java 07
Java 07
 
Java 06
Java 06Java 06
Java 06
 
Java 05
Java 05Java 05
Java 05
 
Java 04
Java 04Java 04
Java 04
 
Java 03
Java 03Java 03
Java 03
 
Java 02
Java 02Java 02
Java 02
 
Java 01
Java 01Java 01
Java 01
 

Dernier

Dernier (9)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Programando em python arquivos

  • 1. Python: Entrada e Saída Claudio Esperança
  • 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  Arquivos estão associados a dispositivos  Por exemplo, disco, impressora, teclado  Em Python, um arquivo pode ser lido/escrito através de um objeto da classe file
  • 3. Arquivos default  Já usamos, sem saber, três arquivos default  Sempre que um comando print é executado, o resultado vai para um arquivo chamado sys.stdout  Sempre que lemos um dado através do comando input ou raw_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
  • 4. Exemplo >>> import sys >>> sys.stdout.write("alo") alo >>> print "alo" alo >>> sys.stdin.readline() sfadfas 'sfadfasn' >>> raw_input() fasdfadsf 'fasdfadsf'
  • 5. Redirecionamento  Os arquivos sys.stdin, sys.stdout e sys.stderr normalmente estão associados ao teclado e ao display do terminal sendo usado, mas podem ser reassociados a outros dispositivos  Em Unix/Linux e Windows:  programa > arquivo  Executa programa redirecionando stdout para arquivo  programa < arquivo  Executa programa redirecionando stdin de arquivo  programa1 | programa2  Executa programa1 e programa2 sendo que a saída de programa1 é redirecionanda para a entrada de programa2  Em Linux com shell bash  programa 2> arquivo  Executa programa redirecionando stderr para arquivo
  • 6. Abrindo arquivos  open (name, mode, buffering)  name : nome do arquivo a abrir  mode : (opcional) modo de abertura – string contendo  r : leitura (default)  w : escrita  b : binário  a : escrita a partir do final  + : (usado com r) indica leitura e escrita  buffering : (opcional) indica se memória (buffers) é usada para acelerar operações de entrada e saída  0 : buffers não são usados  1 (ou qq número negativo): um buffer de tamanho padrão (default)  2 ou maior: tamanho do buffer em bytes
  • 7. O objeto file  O comando open retorna um objeto do tipo file (arquivo)  Na verdade, em Python 2.4 em diante, open é o mesmo que file, e portanto o comando é um construtor  O objeto retornado é usado subseqüentemente para realizar operações de entrada e saída: >>> arq = open ("teste", "w") >>> arq.write ("Oi") >>> arq.close () >>> arq = open ("teste") >>> x = arq.read() >>> x 'Oi'
  • 8. 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 rretornados  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  close()  Termina o uso do arquivo para operações de leitura e escrita
  • 9. Convenção de fim de linha  Arquivos de texto são divididos em linhas usando caracteres especiais  Linux/Unix: n  Windows: rn  Mac: r  Python usa sempre n para separar linhas  Ao se ler/escrever um arquivo aberto em modo texto (não binário) faz traduções de n para se adequar ao sistema operacional  Em modo binário, entretanto, a conversão não é feita
  • 10. Interação com o Sistema Operacional  Operações de entrada e saída são na verdade realizadas pelo sistema operacional  O módulo os possui diversas variáveis e funções que ajudam um programa Python a se adequar ao sistema operacional, por exemplo:  os.getcwd() retorna o diretório corrente  os.chdir(dir) muda o diretório corrente para dir  os.sep é uma string com o caractere que separa componentes de um caminho ('/' para Unix, '' para Windows)  os.path.exists(path) diz se path se refere ao nome de um arquivo existente
  • 11. Lendo e escrevendo linhas  readline(n)  Se n não é especificado, retorna exatamente uma linha lida do arquivo  Caso contrário, lê uma linha, mas busca no máximo n caracteres pelo final de linha  readlines(n)  Se n não é especificado, retorna o restante do conteúdo do arquivo em uma lista de strings  Caso n seja especificado, a leitura é limitada a n caracteres no máximo  writelines(seqüência)  Escreve a lista (ou qualquer seqüência) de strings, uma por uma no arquivo  Caracteres terminadores de linha não são acrescentados
  • 12. Acesso direto  É possível ler e escrever não seqüencialmente em alguns tipos de arquivo  Devem estar associados a dispositivos que permitem acesso direto, como discos, por exemplo  seek(offset,whence)  offset indica o número do byte a ser lido e escrito pela próxima operação de entrada e saída  whence indica a partir de onde offset será contado  0 (default) : do início  1 : do ponto corrente  2 : do final  tell()  Indica a posição corrente (número de bytes a partir do início do arquivo)