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 :

Exécution d'un script externe sous Linux


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 37
    Par défaut Exécution d'un script externe sous Linux
    Bonjour,

    je n'arrive pas a exécuter un script externe sous linux

    voici le code en question

    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
     
    import sys
    import os
    import shutil
    import glob
    import subprocess
    import logging
    import datetime
    from PIL import Image, ExifTags
     
    import time
     
    dossier_test = "/home/christophe/Images"
    orig="a faire DDP EOS"
    dest="DDP EOS"
    lire_fichier = '/usr/local/bin/exiftool -DateTimeOriginal'
    list_a_traiter=""
     
    #debut de ma boule for
    for list_a_traiter in glob.glob(dossiertraiter+'*.*'):
     
      # permet de  determiner   la date de création du fichier image
            exifFichier = subprocess.check_output(
                lire_fichier+" " + list_a_traiter)
            # type retourné binaire le décode permet d'avoir un vrais string sans caractére parasite
            tempo = exifFichier.decode()
    voici ce que j'obtiens comme erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/bin/exiftool -DateTimeOriginal /home/christophe/Images/a faire DDP EOS/IMG_1624.CR2'
    lorsque que j’exécute cette commande dans un terminal, exiftool me retourne bien l'information que je souhaite.

    ce bout de code fonctionne parfaitement sous windows à la différence concernant les chemins des dossiers concerné.


    Avez vous une petite sujection de recherche à me proposer pour que je règle ce petit soucis.

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Peut-être que les espaces posent problème.
    Essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for list_a_traiter in glob.glob(dossiertraiter+'*.*'):
            print(list_a_traiter, os.path.isfile(list_a_traiter))
            exifFichier = subprocess.check_output(
                lire_fichier+' "' + list_a_traiter + '"')
    Note le changement dans les guillemets.

    Et si ça ne va pas, simplifie-toi la vie et fais-le en Python. Et sans devoir décoder les données.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 37
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Peut-être que les espaces posent problème.
    Essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for list_a_traiter in glob.glob(dossiertraiter+'*.*'):
            print(list_a_traiter, os.path.isfile(list_a_traiter))
            exifFichier = subprocess.check_output(
                lire_fichier+' "' + list_a_traiter + '"')
    Note le changement dans les guillemets.

    Et si ça ne va pas, simplifie-toi la vie et fais-le en Python. Et sans devoir décoder les données.
    je ne connaisais pas le module que tu m'a donné. je vais voir comment l'utiliser. merci pour le lien.

    je vais tester ta solution.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Citation Envoyé par lcrprod Voir le message
    Avez vous une petite sujection de recherche à me proposer pour que je règle ce petit soucis.
    L'erreur vous dit que la chaîne de caractères passée en argument n'est pas un fichier existant.
    En fait, elle n'a de sens qu'exécutée dans le contexte d'un shell, donc il faut lui dire de le faire dans ce contexte là via check_output(..., shell=True).
    note: sinon, il faut passer une liste représentant le fichier à exécuter et ses paramètres.

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

  5. #5
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 37
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    L'erreur vous dit que la chaîne de caractères passée en argument n'est pas un fichier existant.
    En fait, elle n'a de sens qu'exécutée dans le contexte d'un shell, donc il faut lui dire de le faire dans ce contexte là via check_output(..., shell=True).

    - W

    Merci pour l'option que je n'avais trouvé dans la documentation.

  6. #6
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 37
    Par défaut
    vraiment pas facile la mise en place de py3exiv2.
    je coince sur l'installation des dependances....
    je vais plus creuser dans l'utilisation d'exiftool .

  7. #7
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Quel OS utilise-tu ?

  8. #8
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    PIP gère tout seul l'installation des dépendances, donc pourquoi ne pas passer par là pour installer ton package ?

Discussions similaires

  1. [Free Pascal] Exécuter un programme externe sous Linux
    Par ptitjoz dans le forum Free Pascal
    Réponses: 9
    Dernier message: 24/04/2018, 23h29
  2. Executer mes scriptes php sous linux
    Par soulbe dans le forum Linux
    Réponses: 1
    Dernier message: 17/08/2006, 18h39
  3. Temps d'execution d'un script c++ sous linux
    Par sharantyr dans le forum Linux
    Réponses: 10
    Dernier message: 04/06/2006, 18h51
  4. Script Bash sous linux ? problemes
    Par MonsieurAk dans le forum Linux
    Réponses: 4
    Dernier message: 14/03/2006, 16h41
  5. script php sous linux ???
    Par Florina dans le forum Langage
    Réponses: 5
    Dernier message: 13/12/2005, 17h14

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