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 :

caractere espace os.system


Sujet :

Python

Vue hybride

rubben caractere espace os.system 04/06/2019, 13h13
wiztricks Salut, Intégrer des... 04/06/2019, 13h28
BufferBob salut, tu peux... 04/06/2019, 14h31
rubben je fais mes tests sur une vm... 04/06/2019, 16h51
wiztricks avec Python, pour tester, on... 04/06/2019, 17h10
Sve@r Bonjour Question... 04/06/2019, 17h14
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    IT
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : IT

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Par défaut caractere espace os.system
    Bonjour, je voulais savoir si on pouvait integrer des caracteres espaces dans la fonction os.system..
    Avec un echo, je remarque qu'il n'y en a pas lorsque je lance le script , et je voulais passer une commande shell dans celle ci , cf code ci dessous
    Il y a peut etre plus simple ou "mieux", je debute un peu en python.

    merci de votre aide


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import csv, os 
     
    file=open("account")
    account_name=csv.reader(file)
     
    for row in account_name:
    #    a = print (row[0])
        a=row[0]
        b=row[1]
        c=row[2]
        print ("creation des comptes ")
        os.system('echo' + a + b + "displayName" + c )

    root@ubuntu:~# python account.py
    creation des comptes
    sh: 1: echojulien@test.frezaea21321displayNamesJulientest: not found

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 699
    Par défaut
    Salut,

    Citation Envoyé par rubben Voir le message
    Bonjour, je voulais savoir si on pouvait integrer des caracteres espaces dans la fonction os.system..
    Intégrer des caractères à une fonction? Quelle drôle d'idée!
    os.system (qui n'est pas trop recommandé) attend comme argument une chaine de caractères... Et si vous voulez la construire avec des espaces, il suffit de les ajouter là ou vous voulez) à sa construction (avec par exemple un '+' que vous utilisez déjà).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par rubben Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        print ("creation des comptes ")
        os.system('echo' + a + b + "displayName" + c )
    tu peux facilement formater tes chaines avec par exemple la méthode .format() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'echo "{} {} --- displayName : {}"'.format(a, b, c)
    ou encore avec python >= 3.7 en utilisant les f-strings f'echo "{a} {b} --- displayName : {c}"' (note le f'')

    aussi, avant de faire tes tests non-maitrisés en root, on te conseille d'utiliser print() abondamment et un compte utilisateur, ça évite les larmes

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    IT
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : IT

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Par défaut
    je fais mes tests sur une vm sur mon pc donc root ou non ca le fait bien !!

    Et si vous voulez la construire avec des espaces, il suffit de les ajouter là ou vous voulez) à sa construction (avec par exemple un '+' que vous utilisez déjà).
    ca n'avait pas l'air de fonctionner quand j'ai voulu tester de cette maniere

    tu peux facilement formater tes chaines avec par exemple la méthode .format()
    tres bon ca merci

    il y a un equivalent alors du os.system pour passer des commandes shell ou pour que python interprete ca bien ?

    thx!

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 699
    Par défaut
    Citation Envoyé par rubben Voir le message
    ca n'avait pas l'air de fonctionner quand j'ai voulu tester de cette maniere
    avec Python, pour tester, on peut lancer l'interpréteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> a = b = c = 'XXX'
    >>> s = a + ' ' + b + ' ' + c
    >>> print(s)
    XXX XXX XXX
    Et le jour ou vous ouvrirez un tuto. vous y trouveriez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> print(' '.join([a, b, c]))
    XXX XXX XXX
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 817
    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 817
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par rubben Voir le message
    je fais mes tests sur une vm sur mon pc donc root ou non ca le fait bien !!
    Question d'habitude. Si tu prends l'habitude de bosser sous root même sur une VM, tu te mettras à bosser sous root ensuite sur une machine normale et là...
    Et l'inverse est évidemment vrai.

    D'autant plus que si tu bosses sous root,les soucis éventuels de droits d'accès de tes programmes seront masqués mais se révèleront chez un user lambda.

    Citation Envoyé par rubben Voir le message
    il y a un equivalent alors du os.system pour passer des commandes shell ou pour que python interprete ca bien ?
    On n'a jamais dit que ce n'était pas bien interprété, juste que ce n'était pas recommandé. Le principal inconvénient c'est que tu n'as aucun contrôle du programme que tu exécutes. Et que tu ne peux pas récupérer son résultat éventuel. Mais si ça te convient alors pas de souci.

    Sinon tu as la librairie subprocess qui est plus complexe mais offre en retour plus de possibilités.
    Exemple:
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    p=subprocess.Popen(("echo", "a", "b", "c"), stdout=subprocess.PIPE)
    for l in p.stdout: print(l)
    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. problème avec les Espaces dans System("")
    Par elhadiDZ dans le forum C
    Réponses: 8
    Dernier message: 01/06/2013, 22h03
  2. caractere espace Char(32) Richtextbox
    Par parabole33 dans le forum C#
    Réponses: 2
    Dernier message: 06/08/2009, 21h22
  3. gets contre fgets - chaine de caracteres espace
    Par nicodn02 dans le forum Bibliothèque standard
    Réponses: 28
    Dernier message: 19/12/2007, 22h26
  4. [9i][SQLPLUS][PL/SQL] LPAD et le caractere espace ?
    Par sali dans le forum Sql*Plus
    Réponses: 5
    Dernier message: 12/04/2006, 14h15
  5. Mettre des espaces dans system()
    Par alan8 dans le forum C
    Réponses: 9
    Dernier message: 11/09/2005, 15h44

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