0% acharam este documento útil (0 voto)
24 visualizações21 páginas

Phyton Guiao6

O documento aborda a manipulação de ficheiros e pastas em Python, incluindo tipos de ficheiros, modos de acesso e métodos para leitura e escrita. Também discute a criação e organização de pastas utilizando o módulo OS. O guia fornece exemplos práticos e sintaxes relevantes para trabalhar com ficheiros e diretórios.

Enviado por

pereira.goncalo
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
24 visualizações21 páginas

Phyton Guiao6

O documento aborda a manipulação de ficheiros e pastas em Python, incluindo tipos de ficheiros, modos de acesso e métodos para leitura e escrita. Também discute a criação e organização de pastas utilizando o módulo OS. O guia fornece exemplos práticos e sintaxes relevantes para trabalhar com ficheiros e diretórios.

Enviado por

pereira.goncalo
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

400725

Programação em Python

- A SINTAXE -
Professor: G. Pereira

Objetivos do guião n.º 6

● Ficheiros
● Pastas e Sub-Pastas

Recursos necessários para a aula

Software
● Python Editor: https://www.python.org/downloads/
● PyCharm: LINK

Documentos
● (Este guião)

Plataformas / Páginas Web


● Plataforma Moodle da Disciplina

Bibliografia Suplementar
https://www.w3schools.com/python/default.asp

Aplicações Informáticas B 1 de 21 Prof. G. Pereira


400725
Programação em Python

Ficheiros

Se há algo que nós fazemos, sempre que trabalhamos no computador


é manipular ficheiros. Sejam eles de diversa ordem, formato, tamanho, etc.
Estamos em constante manipulação de ficheiros, de forma frequente, a
manipular informação, a consultar dados diversos, com objetivos diferentes
de cada utilizador.

A manipulação de ficheiros irá de certa maneira permitir, que os dados


que nós vamos trabalhar a partir deste momento, se tornem persistentes,
que a informação deixe de volátil, pois sempre que executamos um
programa, é apresentada a informação na consola, e encerramos o
programa, a informação perde-se. Podemos a partir deste momento, criar e
reutilizar a informação, sempre que for necessário.

Vamos então trabalhar com a manipulação de ficheiros.

Tipos de Ficheiros: Texto Simples e Texto Binário

Um ficheiro pode ser um texto simples. Um ficheiro de texto


(plaintext) é uma sequência de caracteres, sem informações sobre
formatação.

Cada linha de um ficheiro de texto é terminada com um caractere


especial de fim de linha, EOL (End of Line).

No geral, é o caracter newline (\n). Esse caracter finaliza a linha atual e diz
ao interpretador que uma nova linha começa.

Aplicações Informáticas B 2 de 21 Prof. G. Pereira


400725
Programação em Python

Um ficheiro binário é um qualquer ficheiro que não seja considerado


um ficheiro de texto padrão. Este tipo de ficheiros, só podem ser
processados por uma aplicação específica, que compreenda a estrutura do
ficheiro. Como por exemplo, um ficheiro PDF, um ficheiro mp3, um ficheiro
de excel, etc.

Trabalhar com Ficheiros em Python

Para trabalharmos com ficheiros em Python teremos que utilizar o


objeto file.

Os objetos file possuem métodos e atributos que podem ser usados


para recolher informações e trabalhar o ficheiro.

Um objeto file possui um atributo nome, que é o nome do ficheiro a


ser manipulado, e um atributo modo, que é a forma como o ficheiro será
acedido.

Aplicações Informáticas B 3 de 21 Prof. G. Pereira


400725
Programação em Python

Modo de Acesso aos Ficheiros

Modo Tipos de Acesso


r Somente de Leitura

w Escrita, apagando (substituindo) o


conteúdo existente no ficheiro

a Escrita, preservando o conteúdo


existente (append). O ficheiro é
criado, se não existir. O texto é
inserido no final do ficheiro.

b Modo binário

+ Abre o ficheiro para actualização -


leitura e escrita

x Abre o ficheiro para criação


exclusiva, falhando se o ficheiro já
existir

t Modo de texto

É possível, realizar combinações, por exemplo, r+, w+, w+b. Caso não seja
indicado nenhum MODO, por defeito o modo de acesso é o r.

Aplicações Informáticas B 4 de 21 Prof. G. Pereira


400725
Programação em Python

Em resumo, sendo que:

read - permissão de leitura

write - permissão de escrita

create - o ficheiro é criado, caso ainda não exista

truncate - quando o ficheiro é aberto, todo o conteúdo é eliminado

position at start - quando o ficheiro é aberto, o cursor está colocado no


início do ficheiro

position at end- quando o ficheiro é aberto, o cursor está colocado no fim


do ficheiro

r r+ w w+ a a+

read + + + +

write + + + + +

write after + + +
seek

create + + + +

truncate + +

position at + + + +
start

position at + +
end

Aplicações Informáticas B 5 de 21 Prof. G. Pereira


400725
Programação em Python

A fim de termos uma ação correta na manipulação de


ficheiros, devemos efetuar as seguintes operações:

1. Abrir o Ficheiro pretendido


2. Chamar os métodos adequados (leitura/escrita)
3. Executar o processamento dos dados do ficheiro
4. Fechar o ficheiro

A função open(), retorna um objeto que irá permitir manipular/trabalhar


com ficheiros.

Aplicações Informáticas B 6 de 21 Prof. G. Pereira


400725
Programação em Python

Sintaxe:
Ficheiro = open(ficheiro, modo)

>>> f = open("test.dat","w")

>>> type(f)

type ‘file?

>>> print f

<open file ’test.dat’, mode ’w’ at fe820>

Métodos sobre ficheiros


Abrir um ficheiro
f = open(caminho, modo)

Modos em resumo:

● ’r’ leitura (ficheiro deve já existir)


● ’w’ escrita (se o ficheiro já existir: remove o conteúdo)
● ’a’ escrita (se o ficheiro já existir: acrescenta ao final)

Métodos sobre ficheiros


Mais comuns:
● f.write(str) escreve uma cadeia
● f.read() lê todo o conteúdo (uma “string”)
● f.read(n) lê apenas n caracteres
● f.readline() lê uma linha de texto
● f.readlines() lê o conteúdo e divide em lista
● f.close() termina leitura/escrita no ficheiro

Aplicações Informáticas B 7 de 21 Prof. G. Pereira


400725
Programação em Python

Importante: deves sempre usar close para garantir que o ficheiro é escrito
corretamente!

NOTA:

Não é necessário importar qualquer módulo para podermos trabalhar com


ficheiros no Python.

Informação:
Quando um ficheiro é lido, o Python mantém um registo da posição de
leitura no ficheiro. Se utilizarmos a função read(), a posição do “cursor” será
o final do ficheiro, isto porque a função devolve/apresenta o conteúdo do
ficheiro todo. Se repetíssemos a utilização da função read(), logo em
seguida, o resultado seria uma String vazia.

A posição do cursor pode ser alterada, utilizando para isso a função


seek(), que recebe como argumento a posição desejada, um deslocamento
em bytes. Para colocar novamente o cursor na posição inicial, usamos o
comando seek(0), se pretendermos colocar numa outra posição, colocamos
por argumento o valor do caractere (um caractere equivale a um byte) em
que queremos que surja. Por exemplo, seek(16). Ter em atenção que
carateres especiais ocupam mais do que um caractere.

Se quisermos saber em que posição está o cursor, usamos o comando


tell().
Exemplo de escrita
>>> f = open("teste.txt", "w")
>>> f.write("Olá mundo!")
>>> f.write("Adeus mundo...")
>>> f.close()

Aplicações Informáticas B 8 de 21 Prof. G. Pereira


400725
Programação em Python

Exemplo de leitura
>>> f = open("teste.txt", "r")
>>>print(f.read())
’Olá mundo! Adeus mundo...’
>>> f.close()

Podemos ainda utilizar o comando tell, que nos indica a posição do cursor
no ficheiro

>>>> f = open(‘teste.txt’, ‘r’)


>>>>print(‘Posição atual no arquivo: ‘+f.tell())
>>>>print(f.read())
>>>>print(‘Posição atual no arquivo: ‘+f.tell())
>>>>print(f.read())
>>>>f.seek(0)
>>>>print(‘Posição atual no arquivo: ‘+f.tell())
>>>>print(f.read())
>>>>f.close()

Perceberam?!?!?!
Podemos ainda, usar a função read() para ler um número determinado de
caracteres, bastando para isso passar por argumento da função, a
quantidade de bytes que pretendemos ler. Por exemplo, se quisermos ler os
primeiros 8 bytes do ficheiro.

Aplicações Informáticas B 9 de 21 Prof. G. Pereira


400725
Programação em Python

Exemplo:
f.read(8)

Métodos readline() e readlines()

Vimos entretanto a função read(), no entanto é possível ler os


conteúdos de um ficheiro usando outras funções, que são a readlline() e a
readlines().

Método readline()

Sempre que nós chamamos esta função, ela lê uma linha de texto, e o
cursor que vai controlando as linhas que compõem o texto do ficheiro, é
incrementada.
Em resumo, lê a linha e passa para a seguinte.

Aplicações Informáticas B 10 de 21 Prof. G. Pereira


400725
Programação em Python

Método readlines()

Retorna uma lista de valores de String do ficheiro, sendo que cada


String ou cada posição da lista, corresponde a cada linha do ficheiro de
texto.

Exemplo:
#Testando os métodos read(), readline() e readlines()
lerFicheiro = open(‘exemploguiao6.txt’, ‘r’)
print(‘\nMétodo read():\n’)
print(lerFicheiro.read())

lerFicheiro.seek(0) #volta para o início do ficheiro

print(‘\nMétodo readline():\n’)
print(lerFicheiro.readline())
print(lerFicheiro.readline())

lerFicheiro.seek(0) #volta para o início do ficheiro

print(‘\nMétodo readlines():\n’)
print(lerFicheiro.readlines())

lerFicheiro.close()

Aplicações Informáticas B 11 de 21 Prof. G. Pereira


400725
Programação em Python

Utilizando o ciclo FOR


Neste exemplo, podemos ver que não é necessário utilizar as
funções anteriormente estudadas, read(), readline() ou readlines()

lerFicheiro = open(‘exemploguiao6.txt’, ‘r’)


for linha in lerFicheiro:
print linha

lerFicheiro.close()

Utilizando o ciclo WHILE

Ao contrário do ciclo FOR, este ciclo já necessita que utilizemos a


função readline().

lerFicheiro = open(‘exemploguiao6.txt’, ‘r’)


While True:
#lê a linha
linha = lerFicheiro.readline()
print(linha)
#verifica se a linha está vazia
if not linha
break
lerFicheiro.close()

Aplicações Informáticas B 12 de 21 Prof. G. Pereira


400725
Programação em Python

Criar Ficheiros

Até agora temos estado apenas a aceder a ficheiros já criados, e se


criarmos de raiz os nossos ficheiros, escrevendo também através de scripts
o conteúdo.

1º Passo

ficheiro = open(‘esalv.txt’, ‘w+’)

Estamos a criar o nosso ficheiro, associado a um objeto, de modo a


que sempre que quisermos trabalhar com ele, este possa ser identificado,
como já vimos anteriormente.

O modo, é o ‘W’, comando de escrita, que nos vai permitir escrever no


ficheiro pretendido, bem como o comando ‘+’, que vai actualizar a
informação no ficheiro, como vimos aqui neste quadro. Esta opção acontece
porque o ficheiro está vazio, a outra opção seria utilizar o ‘a’, para realizar o
append da informação no ficheiro. A utilização desta solução, reforçamos
que o ficheiro não existe, logo terá que ser criado.

2º passo

ficheiro.write(‘Escrevemos esta linha’)

Utilizamos então o comando de escrita da linha, iremos utilizar e


repetir, tantas e quantas vezes nós quisermos de texto no nosso ficheiro.
Outra hipótese é utilizar ciclos de repetição para “encher” conteúdo do nosso
ficheiro.
for i in range(10):
ficheiro.write("Escreve esta linha %d\r\n" % (i+1))

Aplicações Informáticas B 13 de 21 Prof. G. Pereira


400725
Programação em Python

3º passo

ficheiro.close()

Nunca esquecer o comando para encerrar o acesso ao ficheiro.

Para acrescentar conteúdo ao ficheiro

1. º Passo

ficheiro = open(‘esalv.txt’, ‘a+’)

Como vimos no quadro acima, iremos utilizar o comando associado ao


append, isto é, adicionar informação a um conteúdo já existente.

2. º passo

ficheiro.write(‘Escrever esta nova linha’)

Também podemos utilizar um ciclo de repetição como no exemplo anterior.

3. º passo

ficheiro.close()

Nunca esquecer o comando para encerrar o acesso ao ficheiro.

Aplicações Informáticas B 14 de 21 Prof. G. Pereira


400725
Programação em Python

Pastas
Se os ficheiros vão permitir que guardemos informação, em diferentes
formatos, as pastas permitem organizar o arquivo desses mesmos
ficheiros. Através de scripts de Python é possível nós criarmos pastas e
sub-pastas diversas.

NOTA:
Nesta situação, teremos que importar um módulo, o módulo OS.

import os

Antes de avançarmos para a criação de novas pastas, podemos tentar


saber, qual a localização do nosso projeto, pedido ao Python que nos
devolva essa informação.

# importar o módulo
import os

# Deteta em que diretoria estamos a trabalhar e apresenta na consola


path = os.getcwd()
print ("The current working directory is %s" % path)

Usamos neste exemplo, o comando getcwd.

Aplicações Informáticas B 15 de 21 Prof. G. Pereira


400725
Programação em Python

Criar uma Diretoria

Para criarmos uma diretoria, iremos utilizar o tradicional mkdir.


Como argumento, devemos utilizar o caminho/localização onde queremos
criar a diretoria.
Exemplo:
import os

# definimos o nome da diretoria a criar


path = ‘pastaTeste’
try:
os.mkdir(path)
except OSError:
print ("Erro na criação da diretoria %s" % path)
else:
print ("Diretoria criada com sucesso %s " % path)

Usamos neste exemplo, o comando mkdir.

Devemos ter em atenção, que o comando mkdir, não permite criar


sub-diretorias, apenas podemos criar pastas de primeiro nível.
Para podermos criar mais pastas, e níveis abaixo, devemos utilizar o
comando makedirs().

Vamos ver o exemplo….

Aplicações Informáticas B 16 de 21 Prof. G. Pereira


400725
Programação em Python

import os

# definimos o nome das pastas a criar


path = "pastaTeste/esalv/Python/Turma 12B"

try:
os.makedirs(path)
except OSError:
print ("Creation of the directory %s failed" % path)
else:
print ("Successfully created the directory %s" % path)

Utilizamos neste exemplo, o comando makedirs().

Eliminar Diretorias

Seguindo a mesma lógica de desenvolvimento, iremos utilizar o comando


rmdir(), à semelhança dos comandos anteriores, requer o caminho da
diretoria que queremos eliminar.

NOTA: Só funciona se as diretorias estiverem VAZIAS.

Aplicações Informáticas B 17 de 21 Prof. G. Pereira


400725
Programação em Python

Ficheiros (continuação)

Função split

Esta função é muito útil quando estamos a trabalhar com


palavras/texto. Com esta simples função permite “quebrar” uma frase,
uma linha de texto de diversas maneiras, dando a possibilidade de podermos
trabalhar a informação de forma mais simples. A informação será convertida
numa lista

Sintaxe:

String.split(separador, max)

Sendo que:

Separador: Opcional. Podemos indicar um símbolo/caractere que sirva


de referência da separação, por exemplo a (,). Em caso de não ser utilizado,
será considerado o espaço entre as palavras como separador.

max: Opcional. Podemos indicar o número máximo de elementos a


compor a lista. Em caso de omissão, o número de elementos será o número
de palavras que estivermos a analisar numa linha, num texto, etc.

Exemplo 1:

txt = “Bom dia a tod@s os alun@s”

x = txt.split()

print(x)

Aplicações Informáticas B 18 de 21 Prof. G. Pereira


400725
Programação em Python

Exemplo 2:

txt = "Bom dia, este é o guião 6, de Python"

x = txt.split(", ")

print(x)

Exemplo 3:

txt = "pera#banana#morangos#laranja"

x = txt.split("#")

print(x)

Abre o ficheiro “exemplo2guiao6.txt” que está partilhado na


plataforma Moodle, para realizares as próximas atividades.

Nota: o ficheiro partilhado é um mero exemplo, podendo ser utilizado


qualquer outro ficheiro para o efeito.

Aplicações Informáticas B 19 de 21 Prof. G. Pereira


400725
Programação em Python

ATIVIDADE 1
Crie um programa em Python que recebendo um ficheiro de texto, peça ao
utilizador que pesquise uma determinada palavra no ficheiro. Caso esta
palavra exista, deverá ser devolvida a linha ou as linhas onde essa palavra
se encontra.
Garanta que o seu programa, consegue pesquisar a palavra, seja ela
inserida em maiúsculas ou minúsculas.

ATIVIDADE 2
Crie um programa em Python que peça ao utilizador que insira o nome de
um ficheiro de texto. O ficheiro deverá ter algum conteúdo (texto) e que
possa ser lido.
Deve garantir que o nome do ficheiro é inserido corretamente e este é
encontrado, apresentado o resultado final, caso contrário, deverá surgir
uma mensagem indicando que não foi possível abrir o ficheiro pretendido.
O programa deverá devolver de acordo com o texto lido:
● Nº de linhas
● Nº frases
● Nº de linhas vazias
● Nº de Palavras

Fica ao critério de cada um, caso queiram acrescentar uma outra pesquisa.

Aplicações Informáticas B 20 de 21 Prof. G. Pereira


400725
Programação em Python

ATIVIDADE 3

Decide ir às compras, deverá criar um programa em Python que o possa


auxiliar nessa situação. Crie previamente (ou peça ao utilizador) um
dicionário de produtos que possam existir num supermercado, inserindo o
seu nome e preço.
Apresente os elementos para que possa decidir quais os produtos a
comprar. Garanta que insere corretamente o nome dos produtos, em
seguida, peça a quantidade a comprar.
Vá escolhendo produtos e inserindo as respectivas quantidades. No final,
deverá surgir a informação dos produtos comprados, preço e quantidades
compradas, apresentando ainda o Valor Total a Pagar.
A. Altere o seu programa para que a informação apresentada na
consola, seja guardada da mesma maneira num ficheiro de nome
talaoCompra.txt

Aplicações Informáticas B 21 de 21 Prof. G. Pereira

Você também pode gostar