1
resposta

[Dúvida] MEU CODIGO ESTA DANDO ERRO E NAO SEI MAIS O QUE FAZER

Estou na aula 06, exercicio 04, e meu codigo esta exatamente igual ao do apresentado, e simplesmente ele nao roda, poderiam me ajudar?

raceback (most recent call last):
  File "/root/Documentos/pipeline_dados/scripts/fusao_mercado_jul.py", line 77, in <module>
    dados_empresaB = Dados(path_csv, 'csv')
  File "/root/Documentos/pipeline_dados/scripts/processamentos_dados.py", line 9, in __init__
    self.dados = self.leitura_dados()
  File "/root/Documentos/pipeline_dados/scripts/processamentos_dados.py", line 29, in leitura_dados
    dados = self.leitura_csv()
  File "/root/Documentos/pipeline_dados/scripts/processamentos_dados.py", line 21, in leitura_csv
    for row in spamreader:
  File "/usr/lib/python3.10/csv.py", line 110, in __next__
    self.fieldnames
  File "/usr/lib/python3.10/csv.py", line 97, in fieldnames
    self._fieldnames = next(self.reader)
ValueError: I/O operation on closed file.
1 resposta

Olá Marcelo, tudo bem?

Pelo traceback que você postou, o erro parece estar relacionado a uma operação de leitura em um arquivo que já foi fechado.

Como você não compartilhou o seu código, peço que se certifique de que o código completo esteja assim:

import json
import csv

class Dados:
    def __init__(self, path, tipo_dados):
        self.path = path
        self.tipo_dados = tipo_dados
        self.dados = self.leitura_dados()

    def leitura_json(self):
        dados_json = []
        with open(self.path, 'r') as file:
            dados_json = json.load(file)
        return dados_json

    def leitura_csv(self):
        dados_csv = []
        with open(self.path, 'r') as file:
            spamreader = csv.DictReader(file, delimiter=',')
            for row in spamreader:
                dados_csv.append(row)
        return dados_csv

    def leitura_dados(self):
        dados = []
        if self.tipo_dados == 'csv':
            dados = self.leitura_csv()
        elif self.tipo_dados == 'json':
            dados = self.leitura_json()
        return dados

Caso o problema persista, peço que compartilhe o seu código completo. Assim, poderei identificar mais facilmente a causa do problema.

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!