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()