Inventari

Disposem de d´un fitxer inventari.txt amb l´inventari de productes en estoc d´una empresa. El fitxer conté una línia per cada producte amb el codi de producte (sis dígits), el nombre d´unitats (un enter) i el cost per unitat (un real) separats per un espai en blanc.

Com a exemple, pots descarregar el fitxer inventari.txt que té el següent contingut:

008732 372 12.23
008721 32 64.20
026353 10 4.55
81113 165 8.76
8123 210 8
15765 21 25.63
25235 259 21.56

Desa les següents funcions al fitxer inventari.py.

  1. Dissenya la funció valor_total que, donat el nom d’un fitxer d’inventari (string), retorni el valor total dels productes en estoc.

    Per exemple, si cridem la funció amb el fitxer inventari.txt anterior, el resultat seria:

    >>> round(valor_total('inventari.txt'),2)
    15897.13
    

    Nota

    Podeu descarregar el fitxer amb tests test-valor-total.txt

  2. Dissenya la funció escriu_baix que, donats dos strings amb els noms de dos fitxers, un d’inventari i un altre per escriure els resultats, i el nombre d´unitats n (enter), escrigui en el segon fitxer els codis i nombre d’unitats dels productes del primer fitxer que tenen menys de n unitats a l´inventari, separats per un blanc i un per línia.

    Per exemple, si fem la següent crida:

    >>> escriu_baix('inventari.txt','resultat200.txt',200)
    

    El resultat seria un fitxer anomenat resultat200.txt amb el següent contingut:

    008721 32
    026353 10
    81113 165
    15765 21
    

    Nota

    Podeu descarregar el fitxer amb tests test-escriu-baix.txt

  3. Dissenya la funció poques_unitats que donat un nom de fitxer (string) amb l’estructura indicada anteriorment i un nombre d’unitats n, retorna True si el fitxer conté algun producte amb un nombre d’unitats inferior a n i False en cas contrari.

    Els següents doctests mostren exemples del seu funcionament amb el fitxer anterior ìnventari.txt`:

>>> poques_unitats('inventari.txt',100)
True
>>> poques_unitats('inventari.txt',5)
False

Nota

Podeu descarregar el fitxer amb tests test-poques-unitats.txt