Você está na página 1de 10

Programa c ao I

Licenciatura em Engenharia Inform atica 20122013

PI VBN Persist encia Lendo e escrevendo O operador format Nomes de cheiros e caminhos Excep co es

Vitor Beires Nogueira Escola de Ci encias e Tecnologia Universidade de Evora


1.1

Persist encia
PI VBN

Os programas que vimos at e agora n ao s ao persistentes, isto e, executam durante algum tempo, recebem input, produzem output mas quando terminam o sua informa c ao desaparece. Existem outro tipo de de programas denominados de persistentes:
executam durante bastante tempo(ou para sempre) guardam alguma da sua informa c ao em algum armazenamento permanente se zermos restart, os programas retomam aonde tinham cado

Persist encia Lendo e escrevendo O operador format Nomes de cheiros e caminhos Excep co es

Exemplos de programas persistentes


SO web servers

Vamos guardar o estado do programa num cheiros cheiro/base de dados.


1.2

Lendo e escrevendo Para escrever para um cheiro podemos abri-lo em modo de escrita: >>> fout = open(output.txt, w) >>> print(fout) <open file output.txt, mode w at 0xb7eb2410> Se o cheiro n ao existir, e criado Sen ao, apaga o conte udo do cheiro e come ca com o cheiro vazio Para colocar informa c ao nos cheiros, temos o m etodo write: >>> line1 = "This heres the wattle,\n" >>> fout.write(line1) O objectocheiro regista o local onde est a, pelo que escrevermos novamente, adiciona a nova informa c ao a seguir. Quando terminarmos a escrita, devemos fechar o cheiro fout.close()
PI VBN Persist encia Lendo e escrevendo O operador format Nomes de cheiros e caminhos Excep co es

1.3

O operador format
PI VBN Persist encia Lendo e escrevendo

Como o argumento de write tem de ser uma string, antes de escrevermos alguma coisa temos de converter para string, como por exemplo: >>> x = 52 >>> f.write(str(x)) Em alternativa podemos utilizar o operador format % 1 . O primeiro operando e a format string(especica como o 2o operando deve ser formatado)

O operador format Nomes de cheiros e caminhos Excep co es

1 Este

operador quando utilizado com inteiros e o m odulo.

1.4

Exemplos do operador format


PI VBN Persist encia Lendo e escrevendo O operador format >>> camels = 42 Nomes de cheiros e >>> %d % camels caminhos 42 Excep co es >>> camels = 42 >>> I have spotted %d camels. % camels I have spotted 42 camels. >>> In %d years I have spotted %g %s. % (3, 0.1, camels) In 3 years I have spotted 0.1 camels. >>> %d %d %d % (1, 2) TypeError: not enough arguments for format string >>> %d % dollars TypeError: illegal argument type for built-in operation

1.5

Nomes de cheiros e caminhos I


PI VBN

Podemos inquirir qual a directoria actual: >>> import os >>> cwd = os.getcwd() >>> print(cwd) /home/vbn Qual o caminho absoluto de um cheiro >>> os.path.abspath(memo.txt) /home/vbn/memo.txt Se o cheiro/directoria existe >>> os.path.exists(memo.txt) True Se e uma directoria e se e um cheiro:

Persist encia Lendo e escrevendo O operador format Nomes de cheiros e caminhos Excep co es

1.6

Nomes de cheiros e caminhos II


PI VBN Persist encia Lendo e escrevendo O operador format

>>> os.path.isdir(memo.txt) False >>> os.path.file(memo.txt) True Qual o conte udo de uma directoria: >>> os.listdir(cwd) [Music, Pictures, Documents, memo.txt]

Nomes de cheiros e caminhos Excep co es

1.7

Exemplo
PI VBN Persist encia Lendo e escrevendo O operador format Nomes de cheiros e caminhos

def w a l k ( d i r ) : f o r name i n o s . l i s t d i r ( d i r ) : p a t h = o s . p a t h . j o i n ( d i r , name ) i f os . path . i s f i l e ( path ) : p r i n t ( path ) else : walk ( path )

Excep co es

1.8

Excep c oes: exemplos


PI VBN Persist encia Lendo e escrevendo

Ao lidar com cheiros muitas coisas podem falhar: Podemos tentar abrir um cheiro que n ao existe

O operador format Nomes de cheiros e caminhos Excep co es

>>> fin = open(bad_file) IOError: [Errno 2] No such file or directory: bad_file Podemos n ao ter permiss oes para abrir o cheiro >>> fout = open(/etc/passwd, w) IOError: [Errno 13] Permission denied: /etc/passwd Podemos tentar abrir uma directoria para leitura >>> fin = open(/home) IOError: [Errno 21] Is a directory

1.9

Excep c oes: como lidar


PI VBN Persist encia

Podemos tentar evitar que as excep c oes ocorram Tamb em podemos capturaras excep c oes: try :

Lendo e escrevendo O operador format Nomes de cheiros e caminhos Excep co es

f = open ( m y f i l e . t x t ) s = f . readline () i = int ( s . strip ()) except I O E r r o r : p r i n t ( I /O e r r o r ) except V a l u e E r r o r : p r i n t ( Could n o t c o n v e r t d a t a t o an i n t e g e r . ) except : p r i n t ( Unexpected e r r o r : , s y s . e x c i n f o ( ) [ 0 ] ) raise

1.10

Você também pode gostar