Carregar apresentação
A apresentação está carregando. Por favor, espere
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.