A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Manipulando Arquivos Profª Líliam Leal.

Apresentações semelhantes


Apresentação em tema: "Manipulando Arquivos Profª Líliam Leal."— Transcrição da apresentação:

1 Manipulando Arquivos Profª Líliam Leal

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")‏
>>> print "alo" >>> sys.stdin.readline()‏ sfadfas 'sfadfas\n' >>> raw_input()‏ fasdfadsf 'fasdfadsf'

5 Abrindo Arquivos open (name, mode, buffering) name: nome do arquivo
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

6 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

7 Exemplo >>> arquivo = open('/etc/passwd')
open file '/etc/passwd', mode 'r' at 0x7f133ac0d5d0> >>> texto = arquivo.read()

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 retornados Write (string) Escreve string no arquivo Devido ao uso de buffers, a escrita pode não ser feita imediatamente Close() Termina o uso do arquivo para operações de leitura e escrita

9 Converção de fim de linha
Arquivos de texto são divididos em linhas usando caracteres especiais Linux/Unix: \n Windows: \r\n 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 Lendo Arquivo Método read Método readlines
>>> texto = arquivo.read() Método readlines >>> arquivo = open('/etc/passwd') >>> linhas = arquivo.readlines() Separando as linhas em um array >>> linhas[0] 'root:x:0:0:root:/root:/bin/bash\n' >>> linhas[-1] 'pop:x:1001:1001:,,,:/home/pop:/bin/bash\n'

11 Método Split >>> user = linhas[-1] >>> user
'pop:x:1001:1001:,,,:/home/pop:/bin/bash\n' >>> campos = user.split(':') >>> campos ['pop', 'x', '1001', '1001', ',,,', '/home/pop', '/bin/bash\n'] >>> campos[0] 'pop' >>> 'User: ' + campos[0] + ' - Dir: ' + campos[5] 'User: pop - Dir: /home/pop'

12 Percorrendo um Array de Listas
>>> for user in linhas: campos = user.split(':') print campos[0] print campos[0].upper()

13 Exemplo >>> temp = '/etc/passwd'
>>> arquivo = open(temp) >>> for linha in arquivo: campos = linha.split(':') print campos[0]

14 Escrevendo o Arquivo >>> arquivo = open ('teste.txt','w')
<open file 'teste.txt', mode 'w' at 0x7f133ac0d660> >>> arquivo.write('Ola mundo\n') >>> arquivo.close() Obs: o close() é necessário para forçar a escrita

15 Escrevendo o Arquivo Modo append - adicionar ao final
>>> arquivo = open ('teste.txt','a') >>> arquivo.write('Ola mundo II\n') >>> arquivo.close()

16 Manipulação de arquivos e diretórios
os.path – Funções para manipulação de arquivos e diretórios - abspath(path) # retorna o caminho completo do diretório - basename(path) # retorna o nome do arquivo - dirname(path) # retorna apenas o caminho do diretório - split(path) # separa o nome do arquivo e do diretório

17 Manipulação de arquivos e diretórios
os.path – Funções para manipulação de arquivos e diretórios - exists(path) # True se arquivo existe - isabs(path) # True se path é caminho absoluto - isfile(path) # True se path é arquivo regular - isdir(path) # True se path é diretório - islink(path) # True se path é link simb. - ismount(path) # True se path é ponto de montagem - getsize(path) # Retorna o tamanho em bytes - samefile(path1, path2) # True se arquivos são iguais

18 Manipulação de arquivos e diretórios
Globbing - Módulo Glob Retorna nomes de arquivos de acordo com um padrão de busca import glob a = glob.glob("/etc/*.conf") b = glob.glob1('/etc/','*.conf') Expansão de variáveis e til(~) não são realizadas

19 Exercício 01) criar um programa para verificar os usuários existentes no seu computador e verificar nos diretórios desse usuários quais arquivos não pertencem a ele.


Carregar ppt "Manipulando Arquivos Profª Líliam Leal."

Apresentações semelhantes


Anúncios Google