I'm trying to make a code that reads a fwf txt file and convert it to a csv file. So I have a list of txt files and I want to generate csv files corresponding to the respective txt file. But instead of doing this, it generated only 2 csv files and both of them with the same content(which hasn't nothing to do with the respective txt file). Here is the relevant code:
class Microdados: def __validar_enums(self, ano: enumerate = Anos.DEZ, estados: list = [], modalidades: list = []): if Estados.TODOS in estados: estados = list(Estados)[:-1] if Modalidades.TODOS in modalidades: modalidades = list(Modalidades)[:-1] return ano, estados, modalidades def __obter_dados_documentacao(self, pasta_temporaria: str, pasta_trabalho, modalidades: list, ano: str): # extraindo csv de documentação para as modalidades escolhidas div_columns = {} ibge_datasets = {} for enum_modalidade in modalidades: try: valor_modalidade, descricao_modalidade = enum_modalidade.value arquivo_csv = os.path.join(pasta_trabalho, "Documentacao_{}.csv".format(descricao_modalidade)) log.debug("Arquivo de documentacao convertido para csv gerado em: {}".format(arquivo_csv)) ibge_desc = pd.read_excel(open(ARQUIVO_DOCUMENTACAO, "rb"), sheet_name=valor_modalidade, header=1) print(type(ibge_desc)) ibge_desc.dropna(how="all", axis="columns") ibge_desc.to_csv(arquivo_csv, encoding="utf-8-sig") col_specification = list(zip(ibge_desc["POSIÇÃO INICIAL"] - 1, ibge_desc["POSIÇÃO FINAL"])) ibge_datasets[descricao_modalidade] = ibge_desc div_columns[descricao_modalidade] = col_specification except Exception as e: log.error("Error at acessing the datas of documentation: {}".format(e)) return ibge_datasets, div_columns def obter_dados_ibge(self, ano: enumerate, estados: list, modalidades: list, header: bool = True): arquivos = glob.glob("listaestados/*.txt") ano, estados, modalidades = self.__validar_enums(ano, estados, modalidades) pasta_temporaria = self.__criar_pasta_temporaria() pasta_trabalho = self.__obter_diretorio_trabalho() print(pasta_trabalho) log.debug("Arquivos de saída salvos em {}".format(pasta_trabalho)) valor_ano, descricao_ano = ano.value ibge_datasets, div_columns = self.__obter_dados_documentacao(pasta_temporaria, pasta_trabalho, modalidades, descricao_ano) for arquivo_estado in arquivos: print(arquivos) for enum_estado in estados: try: valor_estado, estado, sigla = enum_estado.value for enum_modalidade in modalidades: try: valor_modalidade, descricao_modalidade = enum_modalidade.value nome_arquivo_modalidade = "Amostra_{}_{}.txt".format(descricao_modalidade, str(valor_estado)) print(nome_arquivo_modalidade) data = pd.read_fwf(arquivo_estado, colspecs=div_columns[descricao_modalidade]) data.columns = ibge_datasets[descricao_modalidade]["VAR"].tolist() arquivo_csv = os.path.join(pasta_trabalho, "{}_{}.csv".format(nome_arquivo_modalidade[:-4], sigla)) data.to_csv(arquivo_csv, encoding="utf-8-sig", header=header) log.info("Arquivo de {} de modalidade {} extraído".format(sigla, descricao_modalidade)) log.debug("Arquivo de {} de modalidade {} extraído em: {}".format(sigla, descricao_modalidade, arquivo_csv)) except Exception as e: log.error("Erro ao processar os dados de documentação: {}".format(e)) except Exception as e: log.error("Erro ao baixar os dados do estado: {}".format(e))if __name__ == "__main__": ano = Anos.DEZ estados = [Estados.TODOS] modalidades = [Modalidades.TODOS] ibgeparser = Microdados() ibgeparser.obter_dados_ibge(ano, estados, modalidades)``````