A voir également:
- Ecriture dans un fichier txt.
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Écriture facebook - Guide
2 réponses
Bonjour,
Faudrait voir à chercher un peu, convertir un string en integer avec python est une chose qu'on apprend à faire dans n'importe quel tuto de base.
Puis rechercher comment détecter qu'une chaine n'est composée que de chiffres, programmer c'est aussi savoir chercher l'info dont on a besoin, mais tu peux également ouvrir un interpréteur python et taper
C'est quoi cette façon d'utiliser print pour écrire dans un fichier ? T'as été pêcher ça où ? Dans le genre très mauvais façon de procéder, on est en plein dedans.
Le module io dispose des méthodes write, writeline, writelines pour écrire dans un fichier, c'est complètement absurde de changer temporairement ce que fait sys.stdout pour faire une chose aussi simple.
Et d'ailleurs quel est l'objectif à terme de tes manipulations ?
Faudrait voir à chercher un peu, convertir un string en integer avec python est une chose qu'on apprend à faire dans n'importe quel tuto de base.
Puis rechercher comment détecter qu'une chaine n'est composée que de chiffres, programmer c'est aussi savoir chercher l'info dont on a besoin, mais tu peux également ouvrir un interpréteur python et taper
help(str)et tu devrais déjà visualiser une méthode qui te saute aux yeux pour faire cela.
C'est quoi cette façon d'utiliser print pour écrire dans un fichier ? T'as été pêcher ça où ? Dans le genre très mauvais façon de procéder, on est en plein dedans.
Le module io dispose des méthodes write, writeline, writelines pour écrire dans un fichier, c'est complètement absurde de changer temporairement ce que fait sys.stdout pour faire une chose aussi simple.
Et d'ailleurs quel est l'objectif à terme de tes manipulations ?
28 déc. 2019 à 14:51
Sache cependant que je m'autoforme à Python, et qu'être "en plein dans la mauvaise manière de procéder" fait malheureusement partie des risques.
L'objectif de mon exercice est de partir d'un fichier de données CSV (NOM, PRENOM, NAISSANCE, VILLE, AGE) à un script .txt pour l'importer sur une base de donnée PostgreSQL. Ceci a aussi pour objectif à m’entraîner sur la gestion des fichiers txt.
Je récupère les données d'un CSV :
ZERANO;CLAUDE;29/08/1995';LA CIOTAT;21
CANINO;KEVIN;21/02/2001;SAINT ETIENNE;14
Et je crée un script dans un fichier txt sous la forme :
insert into NOM_DE_LA_TABLE values
('ZERANO', 'CLAUDE', '29/08/1995', 'LA CIOTAT', 21),
('CANINO', 'KEVIN', '21/02/2001', 'SAINT ETIENNE', 14);
La complexité (pour moi) dans cet exercice réside dans la manipulation de chacun des éléments.
- Supprimer les apostrophes qui peuvent créer des erreurs (Bruna's devient Brunas)
- Séparer chaque élément des colonnes par des ', sauf pour les valeurs numériques
- Placer un ; à la fin des éléments de la liste.
28 déc. 2019 à 20:03
Voilà, cela devrait à peu près donner ce que tu souhaites obtenir (aucun intérêt à échapper les apostrophes, a-contrario dles guillemets.
Il n'y a rien de complexe là dedans, cela demande de savoir utiliser les str, listes, les slices, format (au moins le basique), manipuler lecture et écriture des fichiers, comprendre l'unpacking, et tout ça, c'est du basique.
Avant de faire des choses trop complexes, il est indispensable de s'exercer à faire des choses plus simples et de monter au fur et à mesure en compétence en lisant et s’exerçant avec des tutos et exercices python.
Il est à noter que générer soi-même ce genre de fichier sql est à éviter, il est préférable d'utiliser les fonctions de l'api python du sgbdr qui sera beaucoup plus sécurisé pour faire des insertions de valeurs issues d'un csv.
En cherchant rapidement, on trouve :
http://initd.org/psycopg/docs/cursor.html#cursor.copy_from