# script com funções auxiliares import csv # gravar dados importados para ficheiro csv def gravar_dados_ficheiro_csv( nome_ficheiro: str, dados_importados: list, campos: list ) -> None: """ Guarda dados em um ficheiro CSV. Args: nome_ficheiro (str): O nome do ficheiro CSV. dados_importados (list): Uma lista de dicionários com os dados a serem gravados. campos (list): Uma lista com os nomes dos campos a serem gravados. Raises: ValueError: Se algum dos argumentos não for do tipo esperado. Returns: None """ # validacao de parametros da funcao if not isinstance(nome_ficheiro, str): raise ValueError('\'nome_ficheiro\' não é do tipo \'str\'') if not isinstance(dados_importados, list): raise ValueError('\'dados_importados\' não é do tipo \'list\'') if not isinstance(campos, list): raise ValueError('\'campos\' não é do tipo \'list\'') with open(nome_ficheiro, 'w', newline='') as ficheiro_csv_historico_precos: ficheiroCSV = csv.DictWriter( ficheiro_csv_historico_precos, fieldnames=campos) ficheiroCSV.writeheader() ficheiroCSV.writerows(dados_importados) # carregar dados de ficheiro csv e guardar em lista def carregar_dados_ficheiro_csv( nome_ficheiro: str, campos: list ) -> list: """ Carrega dados de um ficheiro CSV e retorna uma lista de dicionários. Args: nome_ficheiro (str): O nome do ficheiro CSV. campos (list): Uma lista de nomes de campos correspondentes aos chaves dos dicionários. Raises: ValueError: Se algum dos argumentos for inválido. Returns: list: Uma lista de dicionários contendo os dados do ficheiro CSV. """ # validacao de metodos da funcao if not isinstance(nome_ficheiro, str): raise ValueError('\'nome_ficheiro\' não é do tipo \'str\'') if not isinstance(campos, list): raise ValueError('\'campos\' não é do tipo \'list\'') with open(nome_ficheiro, 'r', newline='') as ficheiro_csv_historico_precos: ficheiroCSV = csv.DictReader( ficheiro_csv_historico_precos, fieldnames=campos) lista_linhas_ficheiro_csv: list = [] for linha in ficheiroCSV: lista_linhas_ficheiro_csv.append(linha) return lista_linhas_ficheiro_csv