LA – Python – Aula 10C – Manipulação de Texto e Arquivos Textos

Manipulação de Arquivos Textos

Inicialmente, textos sao muito bem manipulados em Python.
Strings ou textos ou cadeias de caracteres sao armazenados em memoria em vetores (ou em python uma tupla ou lista)

Como foi visto anteriormente, o fatiamento (slice) de textos eh uma das formas bem simples de iniciar a manipulacao de textos.

frase = 'Python, uma linguagem de programacao interpretada'
frase[0:6]
frase[:6]
frase[8:21]
frase[8:]
frase[0:36:2]
frase[0:36:2]
frase[12::3]

Podemos ainda achar o tamanho da string

frase = 'Python, uma linguagem de programacao interpretada'
len(frase)

Temos a opcao de contar a quantidade de letras

frase = 'Python, uma linguagem de programacao interpretada'
frase.count('o')

Ainda temos como mudar um pouco o parametro, fazendo a contagem com fatiamento:

frase = 'Python, uma linguagem de programacao interpretada'
frase.count('o',0:36)

Podemos tentar achar uma cadeia de caracteres, pedindo para que seja encontrado o inicio da cadeia procurada

frase = 'Python, uma linguagem de programacao interpretada'
frase.find('uma')

Quando temo um valor que nao existe, o retorno eh -1:

frase = 'Python, uma linguagem de programacao interpretada'
frase.find('compilada')

Podemos verificar se uma cadeia existe dentro de uma string, como:

frase = 'Python, uma linguagem de programacao interpretada'
'linguagem' in frase

Ainda eh possivel fazer a substituicao de uma substring:

frase.replace('interpretada','compilada')

Podemos deixar o texto completamente em letras maiuscula:

frase.upper()

Em minusculas:

frase.lower()

Somente a primeira letra em maiuscula

frase.capitalize()

Apos cada espaco em branco, sao caracteres maiusculo e o restante minusculo:

frase.title()
frase = '  Python, uma linguagem de programacao  '
frase.strip()

Remover somente o lado esquerdo ou direto de espacos:

frase.rstrip()
frase.lstrip()

Ainda podemos fazer uma divisao dentro da string, considerando espacos:

frase = frase.split()

Podemos fazer a juncao das palavras divididas por split, colocando um caracter separador:

'-'.join(frase)

Arquivos texto

Pyhton consegue manipular arquivos de textos e arquivos binarios (mp3, .docx, .xlsx etc)

Os arquivos de texto são sequencia de caracteres sem formataçãoo, e o caracter que determina o inicio de uma nova linha eh o \n (new line).

Primeiramente iremos fazer a leitura de arquivos de texto, utilizando o objeto ‘file’, a qual podemos obter atributos.
Basicamente precisaremos do modo r (read), utilizando a função open (handler)

Para ler um arquivo de texto, precisaremos dos métodos:

read() -> retorna o conteudo do arquivo em um única string
readline() -> retorna uma linha de texto em cada chamada, na ordem de cima para baixo (através de um ponteiro, cada vez que o readline é chamado, o ponteiro é atualizado para ir para a outra linha)
readlines() -> retorna uma lista de valores de string do arquivo todo, porém cada linha é separada em um valor de elemento de uma lista.

O teste a seguir deve-se criar o arquivo file.txt na mesma pasta onde o arquivo fonte foi criado:

Arquivo file.txt

linha 0 - conteudo do arquivo file.txt
linha 1 - o arquivo primeiramente
linha 2 - em modo r - read
linha 3 - (somente leiutra)
linha 4 - para depois
linha 5 - ser aberto
linha 6 - nos demais
linha 7 - modos, para 
linha 8 - demonstrar o conteudo
linha 9 - e utilizacao dos metodos
linha 10 - de manipulacao de arquivo no
linha 11 - python

Comandos para fazer a leitura de um arquivo txt já existente:

Teste do método read

#diretorio atual
import os
os.getcwd()

#o arquivo file.txt ja deve existir

print('\nTestando o método read()')
#fazendo a leitura inteira do arquivo
handle = open('file.txt','r')
print(handle.read());

#Não será mostrado nada pois, o ponteiro do
#arquivo está na ultima posicao
print('\nExecutando o método handle.read() novamente')
print(handle.read());

#volta para a linha zero do arquivo
print('\nVoltando o ponteiro para a linha 0 do arquivo')
handle.seek(0)
print(handle.read());

#apos a manipulacao do arquivo
#é aconselhavel fazer o fechamento dele
handle.close()

Testes com o metodo readline()

print('\nTestando o método readline()')

#abertura do arquivo
handle = open('file.txt','r')

#fazendo a leitura linha a linha do arquivo
print(handle.readline());
print(handle.readline());
print(handle.readline());
#precebemos que há uma linha em branco entre as linhas,
#causadas pelo print

#volta para a linha zero do arquivo
print('\nVoltando o ponteiro para a linha 0 do arquivo')
handle.seek(0)
print(handle.readline());

#indo para a linha 5 do arquivo diretamente
print('\nVoltando o ponteiro para a linha 0 do arquivo')
handle.seek(5)
print(handle.readline());

#fechando o arquivo
handle.close()

Testes com o metodo readlines()

print('\nTestando o método readlines()')
#fazendo a leitura do arquivo, colocando
#o conteudo em uma lista

#abertura do arquivo
handle = open('file.txt','r')

print(handle.readlines())

#fechando o arquivo
handle.close()

Tirando linhas em branco usando o readline()

#tirando a linha branca dos entre linhas usado mo método readline()
print('\nTestando o método readline(), sem as linhas em branco')
handle = open('file.txt','r')
for linha in handle:
    linha = linha.rstrip()
    print(linha);
handle.close()

Contando linhas do arquivo

#contando as linhas do arquivo
print('\nContando as linhas do arquivo')
cont = 0
handle = open('file.txt','r')
for linha in handle:
    linha = linha.rstrip()
    cont +=1
print('\nQuantidade de linhas no arquivo: ', cont);
handle.close()

Contando linhas com determinado conteudo no arquivo

#contando linhas que contenham a palavra 'conteudo'
print('\ncontando linhas que contenham a palavra "conteudo"')
cont = 0
handle = open('file.txt','r')
for linha in handle:
    linha = linha.rstrip()
    if 'conteudo' in linha:
        cont +=1
        print(linha)
print('\nQuantidade de linhas no arquivo com a palavra "conteudo": ', cont);
handle.close()
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s