Questão FC890555
Considere o seguinte trecho de código Python. conteudo = """processo;juiz;resultado 0001234-56.2023.8.26.0100;João Silva;Procedente 0009876-44.2022.8.19.0001;Maria Souza;Improceden
Linguagens de Programação para Ciência de Dados
FGV · 2026
Considere o seguinte trecho de código Python.
conteudo = """processo;juiz;resultado 0001234-56.2023.8.26.0100;João Silva;Procedente 0009876-44.2022.8.19.0001;Maria Souza;Improcedente 0011223-77.2023.8.13.0005;João Silva;Parcialmente
Procedente""" with open("sentencas.csv", "w", encoding="utf-8",
newline="") as arquivo: arquivo.write(conteudo)
Para gerar o arquivo sentencas_joao_silva.csv contendo apenas as linhas cujo juiz é “João Silva”, preservando o cabeçalho, deve-se utilizar o código:
- with open("sentencas.csv") as f,
open("sentencas_joao_silva.csv","w") as out: for linha in f: if "João Silva" in linha: out.write(linha)
- with open("sentencas.csv","r",encoding="utf-8") as
inp,
open("sentencas_joao_silva.csv","a",encoding="utf-8")
as out: out.write(inp.readline()) for linha in inp: campos = linha.strip().split(";") if campos[1] == "João Silva": out.write(linha)
- with open("sentencas.csv", "r", encoding="utf-8") as
inp, open("sentencas_joao_silva.csv", "w",
encoding="utf-8") as out: for linha in inp: linha = linha.strip() campos = linha.split(";") if len(campos) >= 2 and campos[1] == "João
Silva": out.write(";".join(campos) + "\n")
- linhas = open("sentencas.csv").read().split("\n") with open("sentencas_joao_silva.csv","w") as out: for linha in linhas[1:]: if linha.split(";")[1] == "João Silva":
out.write(linha+"\n")
- with open("sentencas.csv") as f,
open("sentencas_joao_silva.csv","x") as out: for linha in f: if "João Silva" == linha: out.write(linha)
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
O código usa o gerenciador de contexto with open para abrir simultaneamente o arquivo de origem (inp) em modo "r" e o de destino (out) em modo "a" com encoding="utf-8", garantindo fechamento automático e preservação de acentos.
A instrução out.write(inp.readline()) lê e grava apenas a primeira linha, portanto o cabeçalho é mantido. A função readline() avança o cursor para a próxima linha, de forma que o laço seguinte processa só os dados.
No laço for linha in inp cada linha é tratada com linha.strip() e split(";") para gerar a lista campos. A condição campos[1] == "João Silva" verifica igualdade exata no campo do juiz.
Quando a condição é verdadeira, out.write(linha) grava a linha original no arquivo de saída, preservando formatação e quebras. O modo "a" cria o arquivo se necessário e evita sobrescrever conteúdo existente.
Conteúdo do catálogo FC Concursos · Atualizado em