Autor: [Maria Cleto Rocha]
Número: [A104441]
Este segundo ficheiro foi criado e implementado no âmbito da Unidade Curricular de Processamento de Linguagens, tendo como objetivo principal a análise de um dataset de obras musicais (armazenado num ficheiro CSV).
A aplicação lê os dados do ficheiro CSV sem recorrer ao módulo csv do Python (lendo-o linha a linha), e processa essas informações para gerar:
- Uma lista ordenada alfabeticamente dos compositores;
- Uma distribuição do número de obras por período (e.g. Barroco, Clássico, Romântico, etc.);
- Um dicionário em que, para cada período, é associada uma lista alfabética dos títulos das obras desse período.
- Leitura do ficheiro:
- O programa abre o ficheiro CSV (
obras.csv) e processa o seu conteúdo linha a linha, separando os campos por";".
- O programa abre o ficheiro CSV (
- Tratamento de possíveis cabeçalhos:
- Caso a primeira linha contenha algo como
"nome","titulo", etc., a mesma é ignorada.
- Caso a primeira linha contenha algo como
- Armazenamento de dados:
- São criadas estruturas para guardar compositores (sem repetições), a contagem de obras por período e, adicionalmente, as listas de títulos de obras por período.
- Ordenação:
- No final, os compositores e os títulos das obras de cada período são ordenados alfabeticamente.
- Apresentação dos resultados:
- O programa imprime então uma lista de compositores, a distribuição de obras por período e as listas de títulos de cada período.
-
Função
processar_arquivo(nome_arquivo):- Abre e lê o ficheiro
nome_arquivo; - Separa cada linha em campos (por
";"); - Ignora a primeira linha se for um cabeçalho;
- Atualiza:
- A lista de compositores (sem duplicações);
- O dicionário com a contagem de obras por período;
- O dicionário que mapeia cada período para a sua lista de títulos;
- Ordena compositores e títulos, e retorna as três estruturas de dados finais.
- Abre e lê o ficheiro
-
Compenentes principais (
if __name__ == '__main__':):- Define o nome do ficheiro CSV (
"obras.csv"por omissão); - Chama a função
processar_arquivo; - Imprime a lista ordenada de compositores, a distribuição das obras por período e as listas de títulos por período.
- Define o nome do ficheiro CSV (
O código completo pode ser encontrado no seguinte repositório (exemplo de link): 🔗 obras_musicais.py
Para correr o programa, basta utilizar o comando abaixo (assumindo que tem o Python 3 instalado) e have a certeza de que o ficheiro CSV (obras.csv) se encontra na mesma pasta:
python3 obras_musicais.py