Programování 1 – 10. cvičení
Buďte lepší než Spotify
Napište program pro generování playlistů na Spotify. Pomocí argumentů na příkazové řádce se specifikuje zdrojový soubor s údaji o historii přehrávání ve formátu CSV (jako poziční argument) a způsob generování playlistu. Program by měl umět generovat minimálně
- "top-k" playlist, který obsahuje k nejvíce přehrávaných skladeb,
- náhodně generovaný playlist (ideální by bylo, aby pravděpodobnost každé skladby záležela na počtu přehrání).
Příklad historie přehrání, na základě kterého můžete generovat, najdete v souboru scrobbles-mtopfer-2021.csv
(vygenerováno pomocí Last.fm).
Doporučuji použít knihovny argparse
, csv
, random
.
Příklad vygenerované nápovědy ke skriptu:
usage: spotify.py [-h] [-t {top,random}] [-s SONGS] [-w] file
Spotify playlist generator.
positional arguments:
file Input CSV file name.
optional arguments:
-h, --help show this help message and exit
-t {top,random}, --type {top,random}
Choose "top" for playlist with the most plays or
"random" for playlist with random songs.
-s SONGS, --songs SONGS
Number of songs in the playlist.
-w, --weighted Use play counts as weights in the random generator.
Poznámka: Pokud byste při načítání souboru narazili na chybu
Exception has occurred: UnicodeDecodeError
'charmap' codec can't decode byte 0x98 in position 3539: character maps to <undefined>,
zkuste přidat encoding="utf8"
do funkce pro otevření souboru:
with open(file_path, encoding="utf8") as file: