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 :

Remplacer un os.system('which ' + appli) ?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut Remplacer un os.system('which ' + appli) ?
    Bonjour,

    J'ai beau chercher je ne trouve pas de buildin équivalent à un which (Utilitaire linux permettant de savoir ou est un exécutable, si celui ci est dans les chemins de l'utilisateur).

    Pour le moment je fait un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    try:
        Verif_Appli = os.system('which ' + Programmearechercher)
    puis un :

    Mais j'aimerais bien faire cela en python.

    Pas question de faire une recherche car c'est bien plus long qu'un os.system('which'...).

    Il me semblerais que la solution serait de 'simuler' le lancement de l'application recherchée mais je ne vois pas comment faire...

    Avez vous une idée ?

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Salut

    Tu peux prendre la variable d'environnement $PATH et chercher avec.

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    C'est beaucoup trop long par rapport à la commande os.system('which ' + prog) qui est instantanée.
    Si quelqu'un a tester une version 'windows' je prend.

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 049
    Par défaut
    Une idée peut-être intéressante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import os
    >>> def which(file):
    ...     for path in os.environ["PATH"].split(":"):
    ...         if file in os.listdir(path):
    ...             print "%s/%s" % (path, file)
    Résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> which("python")
    /usr/bin/python

  5. #5
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Cherche pas...
    Le which prend chaque dossier dans le path, et trouve le fichier demandé dans ces dossiers.

    Edit: lol, pdt que j'écris, un edit et un message de plus... Bref je répondais à ta question précédente.
    Dans windows, c'est pareil. Le path, et tu cherches.

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Je pense que je vais tester cela en fait...
    Avec un os.environ sur le path et deux trois choses (mille en fait mais bon ) d'une autre de mes discussions cela devrais donner quelque chose de bien et de plus 'universel'.
    Pas de Résolu pour le moment : Je poste mon code pour avis à la fin.
    Mais là j'ai pas mal à faire avec l'autre discussion en question

  7. #7
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def which(name):
        for directory in os.environ["PATH"].split(os.pathsep):
            if os.path.isfile(os.path.join(directory, name)):
                return os.path.join(directory, name)
     
        raise NotFoundException()
    Voila de quoi satisfaire l'universalité, au moins pour windows et *nix.

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

Discussions similaires

  1. Remplacement du File System Object ?
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 10/12/2014, 11h04
  2. Réponses: 5
    Dernier message: 24/05/2006, 15h41
  3. Remplacement d'un fichier systeme
    Par soufienne dans le forum Windows XP
    Réponses: 7
    Dernier message: 07/02/2006, 18h05
  4. [Système][Runtime]J'arrive pas à lancer une appli externe !?!
    Par polnioumane dans le forum Général Java
    Réponses: 6
    Dernier message: 16/11/2005, 18h55
  5. [Appli Console]Pb exec command ac fct system(const char *)
    Par Le_magicien999 dans le forum MFC
    Réponses: 2
    Dernier message: 16/08/2005, 16h07

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