Um arquivo é uma sequência de bytes armazenada em memória secundária (disco rígido, SSD, pen‑drive, nuvem etc.). Ele permite que dados persistam mesmo após o computador ser desligado.
Memória primária (RAM) é volátil: perde o conteúdo ao desligar. Memória secundária é não volátil e guarda arquivos permanentemente.
.txt, .html, .py..jpg, .mp3, .pdf.É o componente que organiza arquivos em pastas (ou diretórios) formando uma árvore hierárquica. Cada arquivo tem um caminho absoluto (ex.: /home/usuario/docs/arquivo.txt) ou caminho relativo (ex.: ../docs/arquivo.txt).
open(nome, modo). Modos mais usados:
'r' – leitura (texto).'w' – escrita (sobrescreve).'a' – acrescentar ao final.'b' para binário (ex.: 'rb').read(), readline(), readlines().write(string) ou writelines(list).close(). (ou usar with que fecha automaticamente.)def read_file(path):
with open(path, 'r', encoding='utf-8') as f:
content = f.read()
words = content.split()
print(f'Palavras: {len(words)}')
print(f'Caracteres: {len(content)}')
return len(words), len(content)
def write_file(path, nome, idade):
with open(path, 'w', encoding='utf-8') as f:
f.write(f'Nome: {nome}\\n')
f.write(f'Idade: {idade}\\n')
Dica: Sempre indique a codificação (encoding='utf-8') ao trabalhar com texto para evitar erros de caracteres.
Sequência de bytes armazenada em memória secundária, permitindo persistência de dados.
RAM (volátil) vs. disco/SSD/pen‑drive (não volátil).
.txt, .py..jpg, .mp3.Organiza arquivos em diretórios formando uma árvore. Caminho absoluto parte da raiz (/), caminho relativo parte da pasta atual.
open) – modos r, w, a, b.read, readline, readlines.write, writelines.close ou usar with.Função que abre um arquivo, lê todo o conteúdo, conta palavras e caracteres.
Função que cria/abre um arquivo em modo escrita e grava duas linhas formatadas.
Resposta correta: C) 'a'
O modo 'a' abre o arquivo para escrita posicionando o cursor no final, preservando o conteúdo já existente.
with open('dados.bin', 'rb') as f:
header = f.read(4)
rest = f.read()
Qual é a finalidade da chamada f.read(4)?
Resposta correta: B) Ler os primeiros 4 bytes (geralmente um cabeçalho) e deixar o restante para leitura posterior.
Em arquivos binários, read(4) devolve exatamente 4 bytes, útil para ler cabeçalhos ou marcadores.
'w' e o arquivo já existir?
Resposta correta: B) O arquivo é truncado (todo o conteúdo é apagado) antes de iniciar a escrita.
O modo 'w' cria o arquivo se ele não existir e, se existir, limpa seu conteúdo antes de escrever.
def process(path):
f = open(path, 'r')
data = f.read()
f.close()
return sum(int(x) for x in data.split() if x.isdigit())
Assinale a alternativa que apresenta todas as melhorias recomendadas para tornar o código mais robusto e “pythônico”.
Resposta correta: A) Usar with para abrir o arquivo, especificar a codificação, e tratar exceções de I/O.
O bloco with garante o fechamento automático, a codificação evita erros de caracteres e o tratamento de exceções (try/except) impede falhas inesperadas.
O lápizó, bem-vindo novamente a nossa de seteina de algoritmos e programação de computadores dois para o universo.
Hoje, pessoal, a gente vai abordar um assunto que não foi discutido no vimestre anterior, mas que é bastante interessante, bastante importante, os alunos até pedem bastante para a gente falar sobre esse assunto, que é manipulação de arquivos.
Então, como você faz para usar uma linguagem de programação, para criar um arquivo, para ler esse arquivo, para escrever dados, esse arquivo, então a gente vai aprender um pouquinho hoje, como a gente faz isso usando a linguagem parto.
Bom, então, vamos começar aqui o que é um arquivo.
Então, um arquivo é uma sequência de bytes, que é armazenada em memória secundária.
Então, o importante aqui é a gente diferencial o que é memória primária, do que é memória secundária.
Então, memória primária é a memória do computador, então, memória RAM, que é o componente lá que o computador usa para poder armazenar temporariamente os dados que vão ser processados pelo processador.
E a memória secundária são dispositivos, são componentes do computador que você armazena dados que não são volates, que quando você deslegar o computador, por exemplo, esses dados não vão se apagar.
Então, é o caso, por exemplo, de um HD, de um pen drive, de uma própria nuvem, então, isso é que é memória secundária.
E para você armazenadados, nessa memória secundária, a gente usa os arquivos.
Então, existem dois tipos básicos de arquivos.
Então, a gente tem uns arquivos textos que envolvem um tipo de codificação.
Então, é, por exemplo, o caso dos arquivos com a extensão.
txt, .
html, .
py, que é um arquivo Python, entre vários outros.
Então, quando você abre um arquivo usando algum editor de texto, e você consegue ler o que tem escrito nesse arquivo, então, você, na verdade, está abrindo esse arquivo no formato texto.
Então, você está aplicando uma codificação em cima dos bytes, que estão armazenados, a respeito daquele arquivo.
E aí, você tem essa transformação desses bytes em caracteres que são legíveis pelo ser humano.
Agora, existem também os arquivos binários que não têm nenhum tipo de codificação.
Então, os bytes são armazenados ali do jeito que estão mesmo naquele arquivo.
É o caso, por exemplo, de arquivos com a extensão.
html.
mp3, .
jpg, que são imagens.
.
md4, que são vídeos, entre vários outros arquivos, que, se você tentar abrir eles no formato texto, tentar abrir, por exemplo, usando algum editor de texto, você não vai conseguir entender o que está ali armazenado.
Bom, onde que a gente armazena esses arquivos? Então, existe um componente, que é o sistema de arquivos.
É um componente do computador que armazena os arquivos e provemeios para criar eles, para acessar e modificar esses arquivos.
Fornece uma visão uniforme deles.
Embora posso instar armazenados em diferentes dispositivos.
Então, por exemplo, quando você abre lá o Explorer do Windows, em você visualiza as pastas ali que estão contidas no seu computador, essas pastas podem estar armazenadas em diferentes discos da Tomáquina, ou podem uma tarmazena no teu computador, e outra tarmazena na rede, por exemplo, em outro a em outra máquina.
E os arquivos são agrupados em pastas ou diretores, são sinônios esses termos.
Então, a gente cria uma árvore de diretores para poder organizar esses arquivos em pastas e subpastas.
Então, aqui eu tenho um exemplo de uma árvore de diretores.
Aqui, nesse caso, o sistema de arquivos desta figura é do sistema operacional MacOS, mas para diferentes sistemas operacionais você vai ter um sistema de arquivos diferente.
Mas, basicamente, são os mesmos conceitos que você pode aplicar para diferentes sistemas de arquivos.
Então, por exemplo, aqui eu tenho a raiz da minha do meu sistema de arquivos.
A partir desta raiz eu tenho acesso a pastas como o application, bin, users e var, e a partir destas pastas, eu posso acessar outras pastas ou então, arquivos.
Então, você tem pastas, subpastas, armazenados dentro dessas pastas, e os arquivos que estão armazenados ali dentro destas, subpastas.
Para a gente localizar um arquivo, é necessário especificar o seu nome desse arquivo e também a sua pasta ou a sua subpasta.
Para isso, a gente usa ou o caminho absoluto ou o caminho relativo.
No caso do caminho absoluto, é o caminho que a gente vai especificar da raiz até chegar lá naquele arquivo.
Então, por exemplo, para eu acessar o arquivo, é que exemplo, o ponto de XT usando o caminho absoluto, então, eu vou a partir do barra que a minha raiz está, então, o barra está aqui.
Aí eu tenho a pasta para ir o caminho até ele, que é o users, que está aqui, mais uma barra para especificar aqui, você está indo para uma subpasta.
Pois eu tenho a subpasta hypercovique, que é esse aqui, depois mais uma barra para especificar uma outra subpasta, ou nesse caso aqui, o arquivo que está dentro da pasta hypercovique.
Uma outra maneira da gente especificar esse arquivo é por meio do caminho relativo.
Então, o caminho relativo é a partir de um determinado local que eu esteja no meu sistema de arquivo, eu posso acessar alguma outra pasta em alguma outra localidade.
Então, se eu tiver, por exemplo, na pasta share ed, que é esse aqui, se eu quero acessar o arquivo xe, ou ponto de XT, eu posso voltar uma pasta, que é o ponto ponto, como está aqui.
Então, esse ponto ponto em dia que você está subindo na sua hierarquia de pastas, aí depois da ali eu acesso a pasta que eu estou, que eu quero, o users, depois hypercovique, e depois, aí a partir daqui eu acesso o meu arquivo, é que é exemplo, o ponto de XT.
Muito bem? Bom, e como é que faz para a gente acessar esses arquivos? Então, a gente tem três passos principais.
O primeiro deles é abrir o arquivo, que é especificando um modo de abertura, que pode ser de leitura ou descrita.
Aí, a gente vai ler os dados ou escrever os dados neste arquivo, e por fim, a gente vai fechar este arquivo.
Então, para abrir o arquivo existe uma função da linguagem Python, que é a função Open.
Essa função recebe dois parâmetros, que o nome do arquivo, incluindo o caminho, que pode ser absoluto ou relativo, e o modo de abertura, que pode ser de leitura ou descrita, ou de concaternal, alguma coisa no final do arquivo, e entre vários outros modos.
Então, olha aqui, esse aqui são alguns modos que a linguagem Python oferece.
Então, o R indica que é o modo de leitura, desse arquivo, o W indica que é o modo de escrita, e assim por dia, de tá? No caso de arquivos binários, a sequência de bytes não vai ser codificada ou decodificada, usando nenhum tipo de codificação.
Existem várias tipos de codificação.
Então, tem o tabela AS, que tem o TF8.
Então, dependendo de se você quer fazer a escrita em arquivo modo texto, você vai ter que especificar algum tipo de codificação para poder armazenar os caracteres no formato binário, no formato de seus códigos corretos, de acordo com essa especificação da tabela de codificação.
Aqui, eu tenho algumas funções para fazer a leitura ou escrita desses arquivos.
Então, eu tenho, por exemplo, a função read, que faz a leitura de o número n de caracteres desse arquivo que foi aberto.
Isso, na verdade, sim faz uma variável que vai apontar para aquele arquivo que foi previamente aberto.
Entre várias outras funções que vocês podem depois dar uma olhada com calma na explicação de cada uma.
E depois que você faz a leitura ou escrita desse arquivo, a gente chama a função close para fechar esse arquivo.
O que quer dizer fechar um arquivo? Então, fechar, pessoal, significa avisar o sistema operacional para liberar os recursos ou as informações desse arquivo que foi aberto.
Então, quando você abre um arquivo, o sistema operacional cria certas informações a respeito desse arquivo de modo que você, de modo a te dar esse acesso a escrever ou ler do sistema de arquivos.
E quando a gente termina de fazer a manipulação dos dados nesse arquivo, a gente precisa avisar os sistemas operacional para ele liberar esses recursos que foram alocados.
Eu tenho um exemplo de leitura de um arquivo, eu vou passar para a minha tela.
Então esse exemplo já está implementado no meu na minha IDE.
Essa função, rev file, vai receber o nome do arquivo com parâmetro.
Ela vai abrir esse arquivo no modo leitura.
Vou fazer a leitura desse arquivo inteiro.
Reparei o que é variável, que recebe o resultado da função open.
Eu estou usando aqui embaixo para fazer a leitura desse arquivo.
Fiz a leitura, esses dados, esse conteúdo, vai ser armazenado dentro desse arquivo.
Depois eu fecho o arquivo, conto aqui.
Eu faço um processamento aqui embaixo, que é fazer um split.
Então eu vou pegar aquele texto, aquele arquivo que eu li, que está na variável content.
E vou dividir por tokens ou palavras usando essa função split.
Então a partir daí eu vou ter uma lista de palavras dentro deste variável word list.
Vou imprimir essa lista e vou retornar para fora desta função duas informações.
A primeira é o tamanho ou a quantidade de palavras que eu li do arquivo.
E o segunda informação é a quantidade de caracteres que eu li deste arquivo.
Aqui eu faço a chamada.
Então eu tenho aqui a função chamada, a função range file, onde eu vou passar o nome do arquivo que eu estou querendo ler.
Esse arquivo pessoal teste.
txt é um arquivo que eu criei.
Que ele está aqui na mesma pasta deste código que eu estou criando.
Então meu código é o ponto pxlm.
se.
E o meu arquivo teste.
txt é isso daqui que tem algumas informações, como o olaclass, aqui é ola2, sobre arquivos.
Até eu vou entrar aqui na minha terminal para vocês verificar a minha pasta.
Então está aqui pessoal.
Essa daqui é a minha pasta onde eu tenho um meu caminho, barriusers, barramonsato, barri python projects, barra exemplo 1.
Então esse é o caminho absoluto para eu chegar neste arquivo, o exemplo um ponto pxlm, que é o meu programa, que eu acabei de implementer.
Se eu mandar a imprimir aqui todos os arquivos que estão contidos neste pasta, eu tenho aqui, tenho todos esses arquivos.
E eu vou ter também o ots.
txt, que é o arquivo que eu estou fazendo a leitura.
Quando eu estou fazendo a leitura de um arquivo que esteja na mesma pasta do meu programa, eu posso simplesmente colocar o nome do arquivo sem o caminho dele, então ele vai encontrar este arquivo.
Então eu vou executar este programa.
Então ele executou, então eu imprimi aqui toda a minha lista de palavras que foram lidas.
Eu consigo visualizar o número de palavras e o número de caracteres que eu li.
Está 9 e 44.
Tudo bem? Bom, para a gente escrever em um arquivo, pessoal, a gente usa o modo descrita, que é esse w que está aqui.
E aí a gente pode usar entre várias funções, tá? A função write que vai escrever neste arquivo que foi aberto em modo descrito.
Só lembrando que se esse arquivo já existia e você estiver abrindo ele em modo descrita, ele vai sobrescrever este arquivo.
Então tome cuidado para não perder informação, dar ados de arquivos que vocês julgam importantes.
A gente pode também escrever valores de variáveis neste arquivo.
Imagina que eu tenho uma variável idade, que nesse caso aqui assume o tipo int para a gente poder escrever.
Ou a gente faz desta forma, que é fazer a transformação desta variável para o tipo string.
E aí a gente concatenta com a frase, alguma coisa que a gente queira escrever neste arquivo.
Ou então a gente usa a função format que vai transformar esse valor aqui de idade, assim, no seu respectiva string, e vai colocar aqui no lugar destas chaves.
Tudo bem? Então essa é a que foi a nossa videoaula sobre arquivos.
Espero que vocês possam ter compreendido um pouco sobre como que funciona o sistema de arquivos, como que a gente faz abertura, leitura, escrita e fechamento de arquivos.
E a gente se vem então numa próxima videoaula pessoal.
Obrigado e até lá!