criação de ficheiro 'aux.py' com funções auxiliares (como gravar e carregar ficheiros);

aidionado gráfico de velas
This commit is contained in:
2024-07-22 10:56:38 +01:00
parent b08d442640
commit 2a9e244d00
5 changed files with 198 additions and 28 deletions

74
modulos/aux.py Normal file
View File

@ -0,0 +1,74 @@
# 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