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 :

Saut de ligne dans un paramètre


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Saut de ligne dans un paramètre
    Bonjour,

    Je cherche le moyen d'insérer un/des saut(s) de ligne dans un paramètre passé à un programme Python depuis le shell Linux.
    Je m'explique :
    J'ai développé un petit programme Python d'envoi de mails avec les caractéristiques passées en paramètre sous la forme suivante :

    usage_string = "usage : " + __progname__ + "[From=<from>] [To=<to1[,To2]>] [Cc=<Cc1[,Cc2]>] [Bcc=<Bcc1[,Bcc2]>] [Subject=\"Subject\"] [Text=\"Text\"] [Attach=<File1[,File2]>]"

    Or les '\n' ou autres que j'incorpore au texte du message ne sont (évidemment) pas interprétés comme sauts de ligne.

    Si quelqu'un connaissait la solution à ce problème, ça m'arrangerait beaucoup...

    Pierre.

  2. #2
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Il suffit de terminer ta ligne par un simple backslash

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    old_list = ['2001sub0', '2001sub1', '2001sub2', '2001sub3', '2001sub4', '2010', '2011', '2100sub0', '2100sub1', '2100s\
    ub2', '2100sub3', '2101sub0', '2101sub1', '2102sub0', '2102sub1', '2102sub2', '2102sub3', '2102sub4', '2102sub5', '240\
    0', '2401', '2402', '2420', '2421', '2422', '2500sub0', '2500sub1', '2500sub2', '2500sub3', '2500sub4', '2500sub5', '2\
    500sub6', '2500sub7', '2501sub0', '2501sub1', '2501sub2', '2501sub3', '2501sub4', '2501sub5', '2501sub6', '2501sub7', \
    '2540sub0', '2540sub1', '2540sub2', '2540sub3', '2540sub4', '2540sub5', '2540sub6', '2540sub7', '2580sub0', '2580sub1'\
    , '2580sub2', '2580sub3', '2580sub4', '2580sub5', '2580sub6', '2580sub7', '2580sub8', '2580sub9']
    A+

    Pfeuh

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Oui, mais non...
    Salut,

    Et merci pour cette rapide réponse.
    Mais ce texte, je le tape depuis le shell Linux, pas dans le programme.
    J'imagine que la chaîne est interprétée la première fois par le shell, puis par Python, qui du coup n'a plus rien à interpréter...

    Donc mon texte arrive bien, mais avec le backslash dans le texte, sans saut.

    Pierre.

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    A mon avis, ce n'était pas à toi que pfeuh répondait.

    Dans ton cas, si la chaîne "Texte" comporte des "\n" ils doivent être interprétés comme sauts de ligne. Le fait que tu lance ton programme dans une console ne change rien, les paramètres sont transmis tels quels.

    Fait un au début de ton code pour t'en assurer.

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Re,

    Alors, voici ce que j'envoie :
    [pierre] $ python sendmail.py From=pierre@toto.com To=pierre@titi.com Subject=Test Text='Ceci est un test.\na voir'

    ce que m'affiche le print :
    ['sendmail.py', 'From=pierre@toto.com', 'To=pierre@titi.com', 'Subject=Test', 'Text=Ceci est un test.\\na voir']

    et ce que je reçois dans le texte du mail :
    Ceci est un test.\na voir

    Pierre.

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Contournement
    Salut,

    Finalement, j'ai contourné le problème par ajout d'un backslash (ça aurait pu être un autre caractère) dans le texte du message.
    Au niveau du code, je n'ai plus qu'à faire un replace du caractère par "\n" :

    msg.attach(MIMEText(mailtext.replace("\\", "\n")))

    Cela me permet aussi d'insérer des sauts dans mon fichier de paramétrage (utilisé en cas d'absence de paramètres sur la commande).

    Pierre.

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/05/2005, 10h35
  2. Mettre une saut de ligne dans une balise alt
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/12/2004, 09h45
  3. Réponses: 2
    Dernier message: 03/12/2004, 10h27
  4. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 16h53
  5. Nombre de sauts de ligne dans un String
    Par Johnbob dans le forum ASP
    Réponses: 7
    Dernier message: 03/03/2004, 16h33

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