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 :

Texte/retour à la ligne/fichier Excel


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Texte/retour à la ligne/fichier Excel
    Bonsoir,

    Je suis face à un soucis et je n'ai pas trouvé de réponses sur le forum/internet.

    Je souhaite dans le cadre d'un RPG (role play game) sur pygame afficher les paroles de mes PNJ (personnage non joueur) sur une surface blanche.
    L'ensemble de mes dialogues sont dans un fichier excel (pour la gestion des quetes) que je transforme en dictionnaire afin d'y accéder aisément sous forme de string.

    Supposons que:
    -j'utilise la fonction print()
    -ma_phrase = "Bonjour, \n Je suis Jean" (type str issu d'excel)

    Et bien j'obtiens:
    print(ma_phrase) => Bonjour, \n Je suis Jean

    Par contre si je défini ma_phrase directement dans mon éditeur de texte je n'ai aucun soucis et le retour à la ligne se font bien.
    print(ma_phrase) =>
    Bonjour,
    Je suis Jean


    Du coup je me demande pourquoi cela ne fonctionne pas tel que je souhaite ? et deuxièmement, comment puis-je transformer les \n en saut de ligne à partir d'une chaine str issu de mon excel.

    EDIT: j'ai trouvé une "solution" qui est d'insérer de vrai renvoi à la ligne dans mon fichier excel, cependant la réponse m’intéresse tout de même pour la forme si quelqu'un à une idée sans se casser la tête

    Merci à tous

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par qleroy Voir le message
    Je suis face à un soucis et je n'ai pas trouvé de réponses sur le forum/internet.
    Probablement parce que tu as mal cherché. Et tu as (probablement) mal cherché parce que tu ne sais (probablement) pas ce que tu manipules.

    Citation Envoyé par qleroy Voir le message
    Du coup je me demande pourquoi cela ne fonctionne pas tel que je souhaite ? et deuxièmement, comment puis-je transformer les \n en saut de ligne à partir d'une chaine str issu de mon excel.

    EDIT: j'ai trouvé une "solution" qui est d'insérer de vrai renvoi à la ligne dans mon fichier excel, cependant la réponse m’intéresse tout de même pour la forme si quelqu'un à une idée sans se casser la tête
    En fait, il est très probable que ce que tu récupères de ton excel ce n'est pas une string mais une raw_string (une string dans laquelle les caractères spéciaux ne sont pas interprétés). Exemple x=r"aaa\nbbb"; print(x) => tu obtiens "aaa\nbbb" et non "aaa" suivi de "bbb". Tu peux le voir via print(repr(x)) où ça te sort "aaa\\nbbb" montrant que le "\n" est protégé par un second backslash.
    Mais si tu supprimes la protection là ça passe. Mais tu dois d'abord passer par la classe "bytes" pour ça via la méthode "encode()" avant de la décoder en string avec échappement => print(x.encode().decode("unicode-escape")) => et là tu auras "aaa" suivi de "bbb".
    Un des soucis pour s'en rendre compte c'est qu'il n'y a pas de type "raw_string". type(x) donne "str". Une raw_string c'est simplement une string dans laquelle les caractères spéciaux sont protégés.

    Citation Envoyé par qleroy Voir le message
    L'ensemble de mes dialogues sont dans un fichier excel (pour la gestion des quetes) que je transforme en dictionnaire afin d'y accéder aisément sous forme de string.
    Mouais. excel pour ça ça fait un peu riche. Me semble qu'un simple fichier texte de type json serait assez approprié. En plus ça permettrait de porter ton RPG sur des OS qui ne sont pas vendus à M$ et qui, de fait, n'ont pas excel de dispo...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/01/2015, 00h52
  2. Récupération de texte provenant d'un fichier excel
    Par jponsoda dans le forum MATLAB
    Réponses: 5
    Dernier message: 09/06/2010, 08h48
  3. Lecture de ligne fichier excel
    Par abbd dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/03/2009, 14h14
  4. [MySQL] champ texte retour de ligne
    Par tiesto95 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/02/2009, 10h14
  5. [CSV] Retour à la ligne dans Excel en PHP
    Par zulot dans le forum Langage
    Réponses: 3
    Dernier message: 19/02/2007, 17h43

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