SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
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
Redirecionamento


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
Abrindo arquivos


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
Lendo e escrevendo linhas


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
Acesso direto


tell()


Indica a posição corrente (número de bytes a partir do início 
do arquivo)

Más contenido relacionado

Similar a 13 programando em python - arquivos

Similar a 13 programando em python - arquivos (6)

013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivos
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivos
 
Java recursos avançados - streams
Java   recursos avançados - streamsJava   recursos avançados - streams
Java recursos avançados - streams
 
Gerencia Básica Gnu/Linux
Gerencia Básica Gnu/LinuxGerencia Básica Gnu/Linux
Gerencia Básica Gnu/Linux
 
Aula pf 24.04.17
Aula pf 24.04.17Aula pf 24.04.17
Aula pf 24.04.17
 
Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linux
 

Más de Victor Marcelino

08 programando em python - recursao
 08   programando em python - recursao 08   programando em python - recursao
08 programando em python - recursao
Victor Marcelino
 
09 programando em python - classes
 09   programando em python - classes 09   programando em python - classes
09 programando em python - classes
Victor Marcelino
 
01 programando em python - sistemas de numeracao
 01   programando em python - sistemas de numeracao 01   programando em python - sistemas de numeracao
01 programando em python - sistemas de numeracao
Victor Marcelino
 
00 programando em python - introducao
 00   programando em python - introducao 00   programando em python - introducao
00 programando em python - introducao
Victor Marcelino
 
07 programando em python - funcoes
 07   programando em python - funcoes 07   programando em python - funcoes
07 programando em python - funcoes
Victor Marcelino
 
12 programando em python - modulos
 12   programando em python - modulos 12   programando em python - modulos
12 programando em python - modulos
Victor Marcelino
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicos
Victor Marcelino
 
14 programando em python - interfaces graficas com tk
 14   programando em python - interfaces graficas com tk 14   programando em python - interfaces graficas com tk
14 programando em python - interfaces graficas com tk
Victor Marcelino
 
11 programando em python - conjuntos
 11   programando em python - conjuntos 11   programando em python - conjuntos
11 programando em python - conjuntos
Victor Marcelino
 
10 programando em python - excecoes
 10   programando em python - excecoes 10   programando em python - excecoes
10 programando em python - excecoes
Victor Marcelino
 
06 programando em python - dicionarios
 06   programando em python - dicionarios 06   programando em python - dicionarios
06 programando em python - dicionarios
Victor Marcelino
 
05 programando em python - tuplas e strings
 05   programando em python - tuplas e strings 05   programando em python - tuplas e strings
05 programando em python - tuplas e strings
Victor Marcelino
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listas
Victor Marcelino
 
02 programando em python - tipos basicos
 02   programando em python - tipos basicos 02   programando em python - tipos basicos
02 programando em python - tipos basicos
Victor Marcelino
 

Más de Victor Marcelino (16)

Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
08 programando em python - recursao
 08   programando em python - recursao 08   programando em python - recursao
08 programando em python - recursao
 
09 programando em python - classes
 09   programando em python - classes 09   programando em python - classes
09 programando em python - classes
 
01 programando em python - sistemas de numeracao
 01   programando em python - sistemas de numeracao 01   programando em python - sistemas de numeracao
01 programando em python - sistemas de numeracao
 
00 programando em python - introducao
 00   programando em python - introducao 00   programando em python - introducao
00 programando em python - introducao
 
07 programando em python - funcoes
 07   programando em python - funcoes 07   programando em python - funcoes
07 programando em python - funcoes
 
12 programando em python - modulos
 12   programando em python - modulos 12   programando em python - modulos
12 programando em python - modulos
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicos
 
14 programando em python - interfaces graficas com tk
 14   programando em python - interfaces graficas com tk 14   programando em python - interfaces graficas com tk
14 programando em python - interfaces graficas com tk
 
11 programando em python - conjuntos
 11   programando em python - conjuntos 11   programando em python - conjuntos
11 programando em python - conjuntos
 
10 programando em python - excecoes
 10   programando em python - excecoes 10   programando em python - excecoes
10 programando em python - excecoes
 
06 programando em python - dicionarios
 06   programando em python - dicionarios 06   programando em python - dicionarios
06 programando em python - dicionarios
 
05 programando em python - tuplas e strings
 05   programando em python - tuplas e strings 05   programando em python - tuplas e strings
05 programando em python - tuplas e strings
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listas
 
02 programando em python - tipos basicos
 02   programando em python - tipos basicos 02   programando em python - tipos basicos
02 programando em python - tipos basicos
 
Python for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationPython for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administration
 

Último

19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 

Último (20)

Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 

13 programando em python - arquivos