74 lines
2.4 KiB
Python
74 lines
2.4 KiB
Python
# 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 |