71 lines
2.0 KiB
Python
71 lines
2.0 KiB
Python
from sys import exit
|
|
|
|
def carica_prodotti(filename: str):
|
|
try:
|
|
fio = open(filename, "r")
|
|
|
|
prodotti = dict()
|
|
|
|
for line in fio:
|
|
line = line.strip().split()
|
|
prodotti[line[0]] = line[1]
|
|
|
|
fio.close()
|
|
return prodotti
|
|
except FileNotFoundError:
|
|
exit("Errore! Il file", filename, "non è stato trovato!")
|
|
|
|
|
|
def carica_acquisti(filename: str, prodotti: dict):
|
|
try:
|
|
fio = open(filename, "r")
|
|
|
|
prodotti_sospetti = dict()
|
|
|
|
for line in fio:
|
|
line = line.strip().split()
|
|
prodotto = line[0]
|
|
rivenditore = line[1]
|
|
|
|
if prodotto not in prodotti:
|
|
print("Attenzione! il prodotto", prodotto, "non esiste")
|
|
continue
|
|
|
|
if prodotto not in prodotti_sospetti:
|
|
prodotti_sospetti[prodotto] = []
|
|
|
|
prodotti_sospetti[prodotto].append(rivenditore)
|
|
|
|
fio.close()
|
|
return prodotti_sospetti
|
|
except FileNotFoundError:
|
|
exit("Errore! Il file", filename, "non è stato trovato!")
|
|
|
|
|
|
def controlla_acquisti(prodotti: dict, acquisti: dict):
|
|
prodotti_sospetti = dict()
|
|
for prodotto in acquisti:
|
|
if len(acquisti[prodotto]) > 1 or (len(acquisti[prodotto]) == 1 and acquisti[prodotto][0] != prodotti[prodotto]):
|
|
prodotti_sospetti[prodotto] = acquisti[prodotto]
|
|
|
|
return prodotti_sospetti
|
|
|
|
|
|
def stampa_prodotti_sospetti(prodotti: dict, prodotti_sospetti: dict):
|
|
print("Elenco transazioni sospette")
|
|
for prodotto in prodotti_sospetti:
|
|
print("Codice prodotto:", prodotto)
|
|
print("Rivenditore ufficiale:", prodotti[prodotto])
|
|
print("Lista rivenditori:", " ".join(prodotti_sospetti[prodotto]))
|
|
print()
|
|
|
|
|
|
def main():
|
|
prodotti = carica_prodotti("prodotti.txt")
|
|
acquisti = carica_acquisti("acquisti.txt", prodotti)
|
|
sospetti = controlla_acquisti(prodotti, acquisti)
|
|
stampa_prodotti_sospetti(prodotti, sospetti)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |