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 :

Impossible de lancer mon programme externe depuis python


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    ingénierie gros ouvrages mobiles
    Inscrit en
    Août 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : ingénierie gros ouvrages mobiles
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 19
    Points : 19
    Points
    19
    Par défaut Impossible de lancer mon programme externe depuis python
    Voila,

    J'essai de lancer la commande ci dessous depuis un script python

    "C:\Program Files\FreeTime\FormatFactory\FormatFactory" "Custom" "Virdeo RX000 AVI" Q:\PRIVATE\AVCHD\BDMV\STREAM\00014.MTS d:\photos\2014\2014_08_06\00014.avi
    cette commande fonctionne quand je la lance en direct depuis cmd ou depuis un batch

    En revanche, depuis python toujours des erreurs ou rien.
    J'ai essayé avec les méthodes os.system(), os.popen(), subprocess.call([]) ; les résultats sont toujours différents mais non concluants.

    dans le dernier cas voici le code saisi et le résultat:
    import subprocess
    subprocess.call(['"C:\Program Files\FreeTime\FormatFactory\FormatFactory"','"Custom"', '"Virdeo RX000 AVI"', 'Q:\PRIVATE\AVCHD\BDMV\STREAM\00014.MTS'],'d:\photos\2014\2014_08_06\00014.avi')


    Traceback (most recent call last):
    File "C:\Program Files\python27\Script_perso\recup photo.py", line 141, in <module>
    DPhoto(Wcamera4,Wdestination3,'',Wconversion3)
    File "C:\Program Files\python27\Script_perso\recup photo.py", line 54, in DPhoto
    subprocess.call(['"C:\Program Files\FreeTime\FormatFactory\FormatFactory"','"Custom"', '"Virdeo RX000 AVI"', '"Q:\PRIVATE\AVCHD\BDMV\STREAM\00014.MTS"'])
    File "C:\Program Files\python27\lib\subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
    File "C:\Program Files\python27\lib\subprocess.py", line 679, in __init__
    errread, errwrite)
    File "C:\Program Files\python27\lib\subprocess.py", line 893, in _execute_child
    startupinfo)
    TypeError: must be string without null bytes or None, not str
    A noter, j'utilise des doubles guillemets pour renvoyer par exemple "Custom" au programme.
    lorsque je lance le programme seul (premier élément du tableau) le programme s'ouvre bien.

    Là, je sèche.
    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Vous avez essayé avec shlex.split() comme indiqué dans la note de cette rubrique : https://docs.python.org/3/library/su...bprocess.Popen

    Exemple : subprocess.call(shlex.split(ma_commande_complete))

    Avec ma_commande_complete = '"C:\Program Files\FreeTime\FormatFactory\FormatFactory" "Custom" "Virdeo RX000 AVI" Q:\PRIVATE\AVCHD\BDMV\STREAM\00014.MTS d:\photos\2014\2014_08_06\00014.avi'

    C'est-à-dire vraiment toute la ligne au complet ?

    @+.

  3. #3
    Membre à l'essai
    Homme Profil pro
    ingénierie gros ouvrages mobiles
    Inscrit en
    Août 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : ingénierie gros ouvrages mobiles
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 19
    Points : 19
    Points
    19
    Par défaut
    J'ai essayé, l'erreur a disparu, mais le programme ne fait toujours rien

    shlex.split() donne:
    ['C:\\Program Files\\FreeTime\\FormatFactory\\FormatFactory', 'Custom', 'Virdeo RX000 AVI', 'QRIVATEAVCHDBDMVSTREAM00014.MTS', 'd:photos20142014_08_0600014.avi']
    il a dénaturé les derniers paramètres
    après quelques essais j'ai trouvé la forme ci dessous qui convient
    subprocess.call(['C:\\Program Files\\FreeTime\\FormatFactory\\FormatFactory', 'Custom', 'Virdeo RX000 AVI', 'Q:\\PRIVATE\\AVCHD\\BDMV\\STREAM\\00014.MTS', 'd:\\photos\\2014\\2014_08_06\\00014.avi'])
    il ne reste plus qu'à trouver une méthode pour doubler les backslashs.

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par johnsdoeuf Voir le message
    il ne reste plus qu'à trouver une méthode pour doubler les backslashs.
    Pour les chaînes de caractères en dur : r"a\b" = "a\\b"

    Pour les str : os.path.normpath(ma_chaine) https://docs.python.org/3/library/os....path.normpath

    @+.

Discussions similaires

  1. Impossible de lancer un programme PHP depuis Eclipse
    Par francky74 dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 18/02/2015, 23h57
  2. [Eclipse] Impossible de lancer mon programme
    Par ycf16 dans le forum Android
    Réponses: 7
    Dernier message: 22/11/2013, 16h56
  3. Impossible de lancer un programme depuis powerpoint
    Par adelsunwind dans le forum Powerpoint
    Réponses: 1
    Dernier message: 05/06/2009, 10h39
  4. Impossible de lancer mon programme, problème de compilation
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/12/2008, 17h03
  5. [Système] Lancer un programme externe depuis une page web
    Par needles94000 dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2006, 21h34

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