Automatiser script python pour insérer les données de fichier csv dans db

Fermé
Idrissa - 27 févr. 2020 à 11:52
 Idrissa - 28 févr. 2020 à 11:54
Bonjour,

J'ai fortement besoin d'une assistance. En faite je veux insérer les données de fichier csv dans db
exemple mon code: si j'exécute cette code avec crontab, je travaille sous linux ça marche
file.py
mycursor.executer("INSERT INTO customer(id,name,city,postal) VALUES(%s,%s,%s,%s),
(001,"ORANGE","PARIS",75)


Mais par contre si les données sont dans un fichier csv et que je veux inserer dans db de facon automatique avec crontab ça ne marche

voici le code:
file.py
with open("file.csv", "r") as f
reader=csv.reader(f)
next(f)
for row in reader:

myscursor.executer("INSERT INTO customer(id,name,city,postal) VALUES(%s,%s,%s,%s)",
tuple(row))


NB: parcontre si j'execute la commande python file.py ça marche mais le soucis c'est avec le crontab
A voir également:

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
27 févr. 2020 à 13:21
Bonjour,

Est-ce que ce ne serait pas un problème de droit d'accès, ou de chemin d'accès au fichier ?
Essaie pour commencer en mettant le chemin complet de ton fichier dans ton open().
Sinon, essaie de mettre les droits en lecture au fichier à tout le monde :
sudo chmod +r file.csv
.

Xavier
0
Merci beaucoup pour votre réponse rapide

Mais ce ne pas un problème de chemin d’accès au fichier car quand j’exécute l'script le fichier python ça marche bien en ce qui concerne le droit accès j'ai changé le droit en mettant chmod 777 pour tous les fichiers mais quand je lance le crontab pourque l'script exécute automatiquement mais ça ne marche pas

si'il vous plait si vous une autre idée, je suis toujours à l'écoute

Merci d'avance
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > Idrissa
28 févr. 2020 à 08:51
Bonjour,

Le fait que ça fonctionne quand tu exécutes le python n'empêche pas qu'il peut y avoir un problème de chemin d'accès.
En effet, quand tu exécutes le python, ou quand le python est exécuté depuis crontab, l'environnement n'est pas le même, et notamment le répertoire courant de travail. Or, comme tu utilises un chemin relatif, le répertoire de travail est important.
Donc essaie de mettre le chemin absolu, ça permettra au moins de valider ou infirmer l'hypothèse :)

Xavier
0
Merci pour votre réponse, je travaillerai là-dessus
0