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 :

Recherche un équivalent Linux-Mac O$ à os.startfile


Sujet :

Python

  1. #1
    Membre chevronné

    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
    Points : 1 752
    Points
    1 752
    Par défaut Recherche un équivalent Linux-Mac O$ à os.startfile
    Bonjour,
    je cherche un équialent à os.startfile pour Linux et Mac O$ si cela existe ?

    os.startfile(path[, operation])
    Start a file with its associated application.
    ...
    Availability: Windows
    Toute info. est la bienvenue.

  2. #2
    Expert confirmé 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
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour rambc,

    A vrais dire cela dépend sous Linux :
    kfmclient pour KDE, gnome-open sous Gnome, xdg-open si xdg-utils est installé (mais il me semble qu'il recherche les programme précédent) etc...
    A vrais dire, et après les avoir recensés, une recherche dans le path de la présence de l'un d'eux me semble une idée.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  3. #3
    Expert confirmé 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
    Points : 4 005
    Points
    4 005
    Par défaut
    Par contre je n'avais pas vu cela
    Il est possible que cela t'intéresse.
    Merci d'utiliser le forum pour les questions techniques.

  4. #4
    Membre chevronné

    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
    Points : 1 752
    Points
    1 752
    Par défaut
    Sous Mac O$, il suffit de faire comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import os
    pathOfTheFile = "screenshot_01.jpg"
    os.system("open " + pathOfTheFile)
    Il reste à voir comment aborder le problème sous Linux. Je vais étudier les liens que tu m'as donnés.

  5. #5
    Membre chevronné

    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
    Points : 1 752
    Points
    1 752
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    kfmclient pour KDE, gnome-open sous Gnome, xdg-open si xdg-utils est installé (mais il me semble qu'il recherche les programme précédent) etc...
    Sous Ubuntu-Gnome, j'ai testé et c'est ok. Génial !

    Citation Envoyé par PauseKawa Voir le message
    A vrais dire, et après les avoir recensés, une recherche dans le path de la présence de l'un d'eux me semble une idée.
    Comment se fait la recherche dans le path ?

  6. #6
    Expert confirmé 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
    Points : 4 005
    Points
    4 005
    Par défaut
    Sous Linux c'est which mais je préfère utiliser quelque chose de plus universel
    Merci d'utiliser le forum pour les questions techniques.

  7. #7
    Membre chevronné

    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
    Points : 1 752
    Points
    1 752
    Par défaut
    Merci pour which.

    Voici un début de brouillon possible. Qu'en penses-tu ? Je n'ai pas fait la partie qui donne l'OS utilisé mais cela ne pose pas de problème avec les commentaires mis dans le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #! /usr/bin/env python
    #coding=utf-8
     
    # Source : http://www.developpez.net/forums/d856184/autres-langages/python-zope/general-python/recherche-equivalent-linux-mac-o-os-startfile/#post4886241
     
    # Package which : http://code.google.com/p/which/
     
    pathOfTheFile = "screenshot_01.jpg"
     
    import os
    import sys
    import which
     
    # VALUES OF  sys.platform
    #
    # Z ! Mac Book Pro : darwin
    #
    # Officiel doc.
    #    Windows            'win32'
    #    Windows/Cygwin	    'cygwin'
    #    Mac OS X           'darwin'
    #    OS/2               'os2'
    #    OS/2 EMX           'os2emx'
    #    RiscOS             'riscos'
    #    AtheOS             'atheos'
     
    actualOS = 'linux'
     
    if actualOS == 'mac':
        os.system("open " + pathOfTheFile)
    elif actualOS == 'windows':
        os.startfile(pathOfTheFile)
    elif actualOS == 'linux':
        try:
    	    which.which("gnome-open")
    	    os.system("gnome-open " + pathOfTheFile)
        except:
    	    which.which("kfmclient")
    	    os.system("kfmclient " + pathOfTheFile)

  8. #8
    Expert confirmé 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
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from platform import system as actualOS
     
    if actualOS() == 'Windows':
        blabla pour Win
    elif actualOS() == 'Linux':
        blabla pour Linux
    elif actualOS() == 'Darwin':
        blabla pour Mac OS
    Il en existe d'autres que kfmclient ou gnome-open. A ta place je ferais une liste.
    Merci d'utiliser le forum pour les questions techniques.

  9. #9
    Membre chevronné

    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
    Points : 1 752
    Points
    1 752
    Par défaut
    Merci pour l'import simplifié.

    Citation Envoyé par PauseKawa Voir le message
    Il en existe d'autres que kfmclient ou gnome-open. A ta place je ferais une liste.
    C'est ce que je ferais au gré de mes besoins qui pour l'instant vont de Windaube XP-Vista-Seven à Mac O$ en passant par Ubuntu Gnome et KDE.

    PS 1 : il reste juste à voir comment sont générées les erreurs dans which car finalement c'est juste cela qui m'intéresse ici.

    PS 2 : par contre, which s'avère hyper utile pour la configuration d'un logiciel. Par exemple, il existe un éditeur de docs LaTeX qui demande à l'utilisateur de configurer les chemins d'accès aux "éxécutables" latex. Une vraie galère pour un non averti. Avec which, on pourrait lui mâcher le travail.

  10. #10
    Expert confirmé 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
    Points : 4 005
    Points
    4 005
    Par défaut
    Effectivement ce module est intéressant.
    Personnellement je l'utilise avec ProcessOpen en import d'en process pour gérer l'ouverture de programmes sur des systèmes Linux post subprocess (il existe de tout en entreprise ) et cela fonctionne pile poil.

    Exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    def _whichFirstArg(cmd, env=None):
        if cmd.startswith('"'):
            idx = cmd.replace('\\"', 'XX').find('"', 1)
            if idx == -1:
                raise ProcessError("Commande mal formee: %r" % cmd)
            first, rest = cmd[1:idx], cmd[idx+1:]
            rest = rest.lstrip()
        else:
            if ' ' in cmd:
                first, rest = cmd.split(' ', 1)
            else:
                first, rest = cmd, ""
        if os.sep in first:
            altpath = [os.path.dirname(first)]
            firstbase = os.path.basename(first)
            candidate = which.which(firstbase, path=altpath)
        elif env:
            altpath = _getPathFromEnv(env)
            if altpath:
                candidate = which.which(first, altpath.split(os.pathsep))
            else:
                candidate = which.which(first)
            candidate = which.which(first)
        if candidate:
            return _joinArgv( [candidate] ) + ' ' + rest
        else:
            raise ProcessError("Pas de commande approprie trouve "\
                               "pour: %r" % cmd)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                try:
                    cmd = _whichFirstArg(cmd, env)
                except (ProcessError, which.WhichError):
    Bonne découverte
    Merci d'utiliser le forum pour les questions techniques.

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

Discussions similaires

  1. [Recherche] Un équivalant a iterator._Ptr sous Linux.
    Par Izidor's dans le forum SL & STL
    Réponses: 14
    Dernier message: 17/08/2009, 17h06
  2. équivalent linux de 'open' sous mac
    Par befalimpertinent dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 30/07/2008, 09h30
  3. [Lazarus] Recherche l'équivalent de getRvalue sous Linux
    Par pilou63 dans le forum Lazarus
    Réponses: 2
    Dernier message: 10/05/2008, 11h55
  4. CD-ROM Windows/Linux/Mac
    Par Neilos dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 02/12/2005, 22h21
  5. Recherche tutorial NASM Linux
    Par camje_lemon dans le forum Assembleur
    Réponses: 2
    Dernier message: 19/11/2004, 23h42

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