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 :

os.system et espaces dans le chemin


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de kazhar
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut os.system et espaces dans le chemin
    Bonjour,

    Travaillant avec Python et PyUNO, je tente de lancer le serveur via mon script si celui-ci ne l'est pas déjà.

    Je fais donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.system('soffice -accept="socket,host=localhost,port=2002;urp;"'
    Cependant bien que j'ai placé le dossier approprié dans mon path, il ne trouve pas soffice.

    J'ai donc voulu naivement tester un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.system('C:/Program Files/OpenOffice.org 3/program/soffice -accept="socket,host=localhost,port=2002;urp;"')
    Mais la du coup il dit qu'il ne trouve pas C:/Program.

    Du coup me vient la question : comment puis-je placer des espaces dans mon path ?

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    tu peux essayer comme ça ?:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.system(r'C:/Program Files/OpenOffice.org 3/program/soffice -accept="socket,host=localhost,port=2002;urp;"')

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Ce n'est pas vraiment une question de Python, il te suffit d'entourer le chemin de l'exécutable par des guillemets doubles (")

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Pourquoi des guillemets doubles ?
    D'ailleurs, il s'agit bien de " et pas deux fois ' , n'est ce pas ?

  5. #5
    Membre éprouvé Avatar de kazhar
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut
    Sauf que cela ne fonctionne pas.
    Que je fasse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    status = os.system('"'+oo_path+'" "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard')
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    status = os.system(r'C:/Program Files/OpenOffice.org 3/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard')
    J'ai toujours la même erreur
    'C:/Program' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande.

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    L'argument ne doit pas être seulement une chaine, mais une chaine avec ses guillemets. On peut donc utiliser les guillemets entourés par les apostrophes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    os.system('"C:/Program Files/ConTEXT/ConTEXT.exe"')
    Et cela lance l'excellent éditeur de texte context.

    Tyrtamos

  7. #7
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    os.system('"C:/Program Files/ConTEXT/ConTEXT.exe"')
    Voici une bonne pratique pour les chemins (normalement c'est multi-os):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.system(os.path.join('C:', 'Program Files', 'ConTEXT', 'ConTEXT.exe'))

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Je suis un ignare concernant le module os, que ce soit clair.
    Mais je lis dans la docu
    system( command)
    Execute the command (a string) in a subshell.
    Je me dis donc qu'il faut que le string spécifie une commande.
    Or je doute qu'un chemin soit une commande en lui-même......
    Mais bon: GOTO line 1.

  9. #9
    Membre éprouvé Avatar de kazhar
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut
    Oui, je l'avais compris. C'est ce que j'ai dans la chaine plus haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    status = os.system('"'+oo_path+'" "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard')
    Ou oo_path contient le chemin vers l'exécutable. Mais cela ne change rien.

    et, soi dit en passant l'exécution de la ligne de code donnée par tyrtamos dans le message précédent ne change rien non plus.

Discussions similaires

  1. Problème d'espace dans un chemin
    Par kalyparker dans le forum Langage
    Réponses: 15
    Dernier message: 23/08/2007, 10h18
  2. SQLPlus et espace dans un chemin d'accès
    Par jleg dans le forum Sql*Plus
    Réponses: 2
    Dernier message: 22/03/2007, 17h33
  3. Espace dans les chemins en batch
    Par pzou dans le forum Windows
    Réponses: 9
    Dernier message: 25/08/2006, 20h09
  4. [VBS] Gestion des espaces dans le chemin de fichiers
    Par Edoxituz dans le forum VBScript
    Réponses: 4
    Dernier message: 23/02/2006, 16h41
  5. [DOS] Espace dans le chemin et lancement de fichier
    Par nahzhir dans le forum Scripts/Batch
    Réponses: 16
    Dernier message: 20/02/2006, 09h27

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