Geral
Introdução a Ciência de Dados - COM350
Semana 3
0

Questão

Leia o trecho abaixo:
"A manipulação de arquivos em Python é uma habilidade essencial para desenvolvedores, especialmente quando se trabalha com grandes volumes de dados. Python oferece diversas funções para interagir com arquivos, incluindo a leitura, escrita, e modificação de conteúdos. Além disso, a linguagem permite manipular arquivos de forma eficiente por meio de operações em batch ou integração com outras ferramentas de automação. Quando se trabalha com arquivos de texto ou CSV, é importante considerar aspectos como o controle de exceções, o fechamento de arquivos, e a eficiência do processamento dos dados." (Fonte: Manual de Python para Automação de Tarefas)


Você é um desenvolvedor de uma aplicação que precisa processar grandes volumes de dados em arquivos CSV. A aplicação deve ler arquivos CSV, tratar dados sensíveis e exportá-los para outro formato. Seu cliente solicita que o processo seja o mais rápido e eficiente possível, especialmente para arquivos de grandes dimensões. Além disso, você deve garantir que a aplicação trate adequadamente exceções relacionadas a falhas de leitura ou permissão de arquivos.

Para isso, você decide escrever um pequeno código de exemplo para realizar essas tarefas. Veja o código abaixo:



Fonte: Autor, 2025.


Com relação a este contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:


I. O uso do comando open(caminho_arquivo, mode='r', newline='', encoding='utf-8') no código está correto, pois ele abre o arquivo em modo de leitura de texto, com suporte para a codificação UTF-8, o que é adequado para arquivos CSV.

PORQUE

II. A implementação do tratamento de exceções utilizando FileNotFoundError e PermissionError está adequada, pois captura os erros comuns ao tentar abrir um arquivo que não existe ou quando não há permissão para acessá-lo.

A respeito dessas asserções, assinale a alternativa correta. 

A)

As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.

B)

A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.

C)

As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.

D)

As asserções I e II são falsas.

E)

A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.

function vote(questaoId, value) { window.location.href = "/accounts/login/?next=/questao/2673/"; return; fetch(`/vote/questao/${questaoId}/`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': 'S9tSh4Dj5nDgWWftwGv31PLlMN2pyxnNICpPehyCSa68bNwVT9OwZNiVTQmMRiiH' }, body: JSON.stringify({ value: value }) }) .then(response => response.json()) .then(data => { if (data.success) { document.getElementById(`score-${questaoId}`).textContent = data.score; const upBtn = document.querySelector(`button[onclick="vote(${questaoId}, 1)"]`); const downBtn = document.querySelector(`button[onclick="vote(${questaoId}, -1)"]`); upBtn.classList.remove('active-up'); downBtn.classList.remove('active-down'); if (data.user_vote === 1) upBtn.classList.add('active-up'); if (data.user_vote === -1) downBtn.classList.add('active-down'); } }); }