· 5 years ago · Apr 20, 2020, 06:30 PM
1import sqlite3
2from pathlib import Path
3import csv
4
5def verificationdb(database):
6 verifie = Path (database)
7 if verifie.is_file():
8 print("DB loaded")
9 db,cur = connexBase(database)
10 print("connected")
11 menu(db, cur)
12 else:
13 creadb(database)
14 menu()
15
16
17def creadb(database):
18 print("Creatind DB")
19 conn = sqlite3.connect(database)
20 cur = conn.cursor()
21 query = "CREATE TABLE IF NOT EXISTS pays (id INTEGER PRIMARY KEY, code TEXT, nom TEXT)"
22 cur.execute(query)
23
24
25 print("Creation de la base de donnée...")
26
27 reader = csv.reader(open('pays.csv', 'r'), delimiter=';')
28 for row in reader:
29 cur.execute("INSERT INTO pays (code, nom) VALUES (?, ?);")
30
31 conn.commit()
32 conn.close()
33
34
35
36def connexBase(database):
37 db = sqlite3.connect (database)
38 cur = db.cursor()
39 return db, cur
40
41def choix1(db, cur):
42 print('Choix 1')
43 # sélection de tout les enregistrements
44 cur.execute("SELECT * FROM pays ORDER BY Afghanistan ASC")
45
46 pays = cur.fetchall()
47 oldLetter = "a"
48 # afficher la liste
49 for row in pays:
50 actualLetter = row[1][0]
51 if(actualLetter != oldLetter):
52 print("Pays en " +actualLetter)
53 oldLetter = actualLetter
54 print(f"{row[1]}")
55
56 db.close()
57
58def choix2(db, cur,lettre):
59 if(len(lettre) > 1):
60 print("Maximum one letter")
61 menu(db,cur)
62 else:
63 lettre = lettre.upper()
64 cur.execute("SELECT * FROM pays WHERE substr(Afghanistan,1,1) = '"+lettre+"'")
65 pays = cur.fetchall()
66 # afficher la liste
67 for row in pays:
68 print(f"{row[1]}")
69
70 db.close()
71
72def choix3(db,cur):
73 cur.execute("SELECT distinct substr(Afghanistan,1,1) FROM pays ")
74 pays = cur.fetchall()
75 # afficher la liste
76 for row in pays:
77 lettre = row[0]
78 cur.execute("SELECT COUNT(*) FROM pays WHERE substr(Afghanistan,1,1) = '"+lettre+"'")
79 nb = cur.fetchall()
80 for value in nb:
81 print("Il y a "+str(value[0]) +" pays commençant par la lettre" +lettre)
82
83 db.close()
84
85
86
87def menu(db, cur):
88 print("\nAppuyez sur :\n")
89 print ("1 : Liste des pays")
90 print ("2: Liste des pays avec recherche")
91 print ("3 : Nombre de pays qui commencent par une certaine lettre")
92 print ("4 : Quitter")
93
94 choix = input ("\n Que voulez-vous faire ?")
95
96 if choix == "1":
97 print ("Liste des pays par ordre alphabétique")
98 choix1(db, cur)
99 if choix == "2":
100 lettre = input ("\n Quel est la première lettre de votre pays ?")
101 choix2(db, cur, lettre)
102 if choix == "3":
103 choix3(db,cur)
104 if choix == "4":
105 print("\n Au revoir!")
106
107
108
109if __name__ == "__main__":
110 database = "C:\\Users\\Piimps\\Desktop\\data.db"
111 verificationdb(database)