IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

afficher des caractères spéciaux en python


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 53
    Points : 40
    Points
    40
    Par défaut afficher des caractères spéciaux en python
    Bonjour à tous,


    j'utilise un script python pour générer un fichier texte contenant des centaines de requêtes sql, cependant je n'arrive pas à afficher certains caractères (nécessaires pour que mes reuqêtes soient fonctionnelles). Il s'agit de la virgule et de l'apostrophe.

    Voila ce que j'arrive à print :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO ma_table VALUES ( attributA  attributB attribut C);
    et j'aimerai obtenir cela :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO gene VALUES ('attributA', 'attributB', 'attributC' );
    ici mes attributs sont donc entre quote et séparés de virgule.

    Merci à vous si vous avez une solution

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 298
    Points : 6 778
    Points
    6 778
    Par défaut
    Salut,

    Qu'est-ce que tu veux dire par '...j'arrive à print :'

    Tu as une instruction (ou fonction) print qui te sort en console:
    INSERT INTO ma_table VALUES ( attributA attributB attribut C)
    et tu veux ceci:
    INSERT INTO gene VALUES ('attributA', 'attributB', 'attributC' )
    ?

    Si c'est cela, tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "INSERT INTO gene VALUES ('attributA', 'attributB', 'attributC' )"
    Mais comme ça me parait trop simple, je doute avoir compris ta question ...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Oui c'est aussi simple que ça, sauf que lorsque je rajoute les mes attributs ne s'affichent plus, il print "attributA' au lieu du véritable attribut que j'ai stocké précedemment.

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par Thomas77380 Voir le message
    il print "attributA' au lieu du véritable attribut que j'ai stocké précedemment.
    Donc, attributA est une variable, et non une chaine!

    Dans ce cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "INSERT INTO gene VALUES ('%s', '%s', '%s' )" % (attributA, attributB, attributC)
    Je ne sais pas si ça a un caractère général, mais avec le pilote sqlite3, quand une telle requête sql se trouve comme argument d'un execute, il faut lui préférer la syntaxe suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curs.execute("INSERT INTO gene VALUES ('?', '?', '?' )", (attributA, attributB, attributC))
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup ça fonctionne

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Je profite de ce topic pour poser une autre question

    J'éssais désespérement de copier un fichier dans mon répertoire postgresql pour l'executer.

    Cependant impossible de copier quoi que ce soit dans ce répertoire, la permisssion m'est toujours refusée, j'ai essayé en tant que root -> "aucun fichier ou répertoire". Ensuite je me connecte en tant que super utilisateur postgres, je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp chemin_de_mon_fichier ~/postgresql
    et il me renvoie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp cannot stat : mon_chemin  permission denied
    On m'avait expliqué comment manipuler des fichiers pour les mettre dans le répertoire postgres mais je ne m'en rappel plus, j'ai tenté des chmod +x sur mon fichier à envoyer mais rien n'y fait :/

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Sous Linux:

    Si tu te mets "sous root", le répertoire "~" est celui de root, et pas le tiens: normal qu'il ne trouve pas le répertoire postgresql.

    Pour avoir le droit de copier un fichier, il faut:

    1- le droit de lecture sur le fichier source

    2- le droit de créer le fichier destination, c'est à dire le droit de lire, écrire et exécuter sur le répertoire destination.

    Et le fichier copié sera attribué à l'utilisateur qui a lancé la copie, avec des droits prévus par le système (umask).

    Donc: regarde les droits que tu as sur le répertoire destination (~/postgresql) , et ajuste les (sous root si nécessaire) pour que tu puisses copier.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 53
    Points : 40
    Points
    40
    Par défaut
    Merci pour votre réponse, je me suis placé dans mon dossier contenant postgresql:
    /var/lib/ puis j'ai effectué un chmod +x et +w pour autoriser l'écriture et l'execution dans le répertoire, cependant même après ca, ca ne fonctionne toujours pas (j'ai aussi réalisé cette opération sur le fichier source).

  9. #9
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Au début, tu parlais de ~/postgresql, qui est en principe converti en: /home/tom77380/postgresql, et je supposais que le répertoire postgresql t'appartenait.

    Maintenant, c'est /usr/lib/postgresql, et là je pense que ça appartient à root:root avec des droits rwxr_xr_x.

    La différence, c'est que seul le propriétaire peut changer les droits: il faut donc changer les droits du répertoire en se plaçant d'abord "sous root".
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 53
    Points : 40
    Points
    40
    Par défaut
    Je ne suis pas très famillier avec ce genre de commande et je dois reconnaitre que je suis perdu, j'ai fais l'ensemble des opérations en tant que root, je me suis placé dans le répertoire var/lib et j'ai appliqué des chmod sur le répertoire postgresql, j'ai ensuite tenté un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp chemin_vers_mon_fichier /postgresql
    je n'ai reçu aucun message d'erreurs, mais après avoir effectué un , j'ai vu que rien n'avait été copié, j'ai fais la même opération dans le répertoire usr/lib, sans succès.

  11. #11
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Déjà, tu n'aurais pas du "profiter" comme tu dis de cette discussion sur les "caractères spéciaux en Python" pour embrayer sur une autre qui n'a rien à voir. Ouvrir une nouvelle discussion et, tant qu'à faire, dans le bon forum ne t'aurait rien coûté ! Imagine les recherches ultérieures faites sur le forum via des mots-clés ...

    Après, mets y aussi du tien : apparemment tu n'y entends rien sur les droits Unix/Linux et tu donnes comme information "j'ai fait un ls", tu écris ls avec de jolies balises code : qu'est-ce qu'on peut en faire ??? recopier ce que tu as à l'affichage dans ton terminal (le résultat de ton ls, pas la commande en elle-même !!!) serait bien plus intéressant (et plutôt un "ls -l" le résultat de "ls -l" pour qu'on puisse en faire quelque chose)
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  12. #12
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Oui, mais avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp chemin_vers_mon_fichier /postgresql
    on ne cherche pas à copier dans /var/lib/postgresql mais dans /postgresql: ce n'est pas pareil !!! Un chemin qui commence par '/' commence à la racine de l'arborescence.

    Il faut recommencer avec le bon chemin!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 53
    Points : 40
    Points
    40
    Par défaut
    En effet le problème venait du fait que j'écrivais mal le chemin d'accès, merci à vous pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher des caractères spéciaux en console : "Funky UTF characters"
    Par buffalo974 dans le forum Général Python
    Réponses: 6
    Dernier message: 16/08/2014, 11h45
  2. Comment afficher des caractères spéciaux tel que € ?
    Par jerem_orga dans le forum Android
    Réponses: 4
    Dernier message: 26/12/2011, 10h38
  3. Afficher des caractères spéciaux en ISO-8859-1
    Par markoBasa dans le forum iReport
    Réponses: 2
    Dernier message: 24/09/2008, 12h21
  4. Où trouver la liste des caractères spéciaux?
    Par gamez dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2003, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo