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ě

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: