Bonjour à tous,

J'ai mis en titre l'erreur que je rencontre. J'ai bien compris qu'apparemment je ne suis pas le seul car le sujet se retrouve sur beaucoup de forums. Je n'arrive cependant pas à comprendre à quoi est dû cette erreur.

Dans le script que je poste ici il y a 3 bases de données : la première s'appelle "Eleves.db" et est directement créée par le script Python; je peux aller extraire des données sans problème, ça marche
Les deux autres CP.db et Ecole.db proviennent de fichiers css trouvés sur le net et mis sous forme de BDD grâce au logiciel DB BROWSER FOR SQlite. Systématiquement lorsque je veux aller chercher des données sur ces deux bases, j'obtiens le message sqlite3.OperationalError: no such table

J'ai bien vérifié l'intitulé de mes fichiers. J'utilise d'ailleurs os.listdir() pour vérifier (et vous montrer) que ces fichiers sont bien présents.



Voici le code :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
import os
import sqlite3
 
def creer_table():
    conn=sqlite3.connect("Eleve.db")
    cur=conn.cursor()
    cur.execute("DROP TABLE IF EXISTS Eleve") # suppression éventuelle de l'ancienne table
    # Création de la table :
    cur.execute("""CREATE TABLE Eleve(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nom TEXT,
    prenom TEXT,
    age INTEGER,
    classe TEXT)
    """)
    conn.commit()
    cur.close()
    conn.close()
 
creer_table()
 
# ENTRER DES DONNEES DANS UNE TABLE
print((os.listdir()))
conn=sqlite3.connect("Eleve.db")
cur=conn.cursor()
cur.execute("INSERT INTO Eleve (id, nom, prenom, age, classe) VALUES (1, 'Dupont', 'Jean', 15, '2A')")
conn.commit()
conn.close()
 
 
 
# CHERCHER DES DONNEES DANS UNE TABLE - ici table "Eleve.db""
conn=sqlite3.connect("Eleve.db")
cur=conn.cursor()
cur.execute("SELECT nom, prenom FROM Eleve WHERE nom='Dupont'")
rows = cur.fetchall()
for row in rows:
    print(row)
conn.commit()
conn.close()
 
# CHERCHER DES DONNEES DANS UNE TABLE - ici table "CP.db""
conn=sqlite3.connect('CP.db')
cur=conn.cursor()
cur.execute("SELECT Nom_de_la_commune FROM CP WHERE commune='METZ'")
rows = cur.fetchall()
for row in rows:
    print(row)
conn.commit()
conn.close()
 
# CHERCHER DES DONNEES DANS UNE TABLE - ici table "Ecole.db""
fichier="C:/Users/chris/Documents/mesScryptPython/Ecoles.db"
conn=sqlite3.connect(fichier)
#conn=sqlite3.connect("Ecole.db")
cur=conn.cursor()
cur.execute("SELECT commune, patronyme FROM Ecoles WHERE commune='METZ'")
rows2 = cur.fetchall()
for row in rows2:
    print(row)
conn.commit()
conn.close()
et voici le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
>>> 
*** Remote Interpreter Reinitialized ***
['CodesPosteaux.sqbpro', 'CP.db', 'CP.sqlite3', 'Ecoles.db', 'Eleve.db', 'module2.py', 'test3.py']
('Dupont', 'Jean')
Traceback (most recent call last):
  File "C:\Users\chris\Documents\mesScryptPython\test3.py", line 48, in <module>
    cur.execute("SELECT Nom_de_la_commune FROM CP WHERE commune='METZ'")
sqlite3.OperationalError: no such table: CP
>>>
Merci pour votre aide.

Chris