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 :

Lancer un prog par ligne de commande


Sujet :

Python

  1. #1
    Membre extrêmement actif
    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
    Points : 1 658
    Points
    1 658
    Par défaut Lancer un prog par ligne de commande
    Bonjour,

    Je me suis mis en tete d'apprendre Python, mais je trouve que c'est bien moins facile que ce qu'on en dit.
    Donc merci a tous ceux qui prennent la peine d'aider les autres.


    J'ai cree un petit programme debile ( z = 13 print z+70 ) avec IDLE et l'ai enregistre sous le nom de tho.py dans C:/Python25/progs, pour avoir quelque chose de simple a faire tourner.


    Je sais faire tourner tho.py avec l'IDLE mais pas avec les lignes de commandes, donc il y a quelque chose que je n'ai pas encore compris.


    Je suis pourtant ce qui est decrit dans la page http://python.developpez.com/faq/?pa...s#GenExecutePy
    C'est a dire, en respectant la casse minuscule et les slash dans ce sens / :
    c:/python25/python.exe tho.py => erreur de syntaxe sur le signe " : "

    Si je tape
    C:/python25/python.exe tho.py => 'syntaxe invalide' sur le signe " : "
    c/python25/python.exe tho.py => 'syntaxe invalide' sur la lettre " o " de tho.py
    c\python25\python.exe tho.py => 'unexpected character after line continuation character' et curseur positionne sous la lettre y de tho.py

    Avec IDLE, j'arrive a lancer tho.py en utilisant Open.
    Mais si j'ecris les lignes precedentes dans IDLE, les memes messages d'erreur apparaissent.

    Alors que dois je faire maintenant ?
    Merci de vos conseils.

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    IDLE n'est pas une console DOS.

    Pour ouvrir une console DOS: Menu Démarrer -> Exécuter et taper cmd
    ou bien créer un fichier .bat => http://python.developpez.com/faq/?pa...enFermetureDos

  3. #3
    Membre extrêmement actif
    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
    Points : 1 658
    Points
    1 658
    Par défaut Pas tout compris encore
    Merci de se preoccuper de mes petits problemes.

    Je n'ai pas dit que je prenais IDLE pour une console DOS. J'ai voulu dire qu'en utilisant la commande c:/python25/python.exe tho.py que j'ai lue sur la page http://python.developpez.com/faq/?page=Generalites#GenExecutePy , dans une console Python, je ne parvenais pas a lancer tho.py . C'est normal, la commande est donnee pour etre utilisee dans une console DOS. Je n'ai pas su lire. Mais je n'imaginais pas qu'il fallait ouvrir une console DOS plutot qu'une console Python pour executer un fichier Python avec une ligne de commande.

    J'ai donc ouvert une console DOS et suis effectivement parvenu a lancer tho.py .
    Cependant il faut ecrire la commande c:/python25/python.exe c:/python25/progs/tho.py pour que ca marche, et non pas simplement c:/python25/python.exe tho.py .

    ------

    Ceci etant, je reste avec mon interrogation:
    est-il possible de lancer un programme Python a partir d'une ligne de commande dans une console Python ouverte par Start/ Programs/ Python 2.5/ Python (command line) ?

    ------

    Mais pour tout dire, l'origine de ces questions est parce que je bloque sur un passage du livre "Dive into Python" a la page http://diveintopython.adrahon.org/html_processing/introducing_sgmllib.html

    Il est ecrit :

    "sgmllib.py est accompagné d'une suite de tests pour illustrer cela. Si on exécute sgmllib.py en lui passant le nom d’un fichier HTML en argument de ligne de commande, il affichera les balises et les autres éléments au fur et à mesure qu’il analyse le fichier "

    Comment execute-t-on sgmllib.py en lui passant un nom de fichier HTML en argument de ligne de commande ?
    S'agit-il d'une ligne de commande dans une console Python ou DOS ?

    Il y a ensuite:

    "Voici un extrait de la table des matières de la version HTML de ce livre. (....)
    c:\python23\lib> type "c:\downloads\diveintopython\html\toc\index.html
    "

    <!DOCTYPE html
    PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

    <title>Dive Into Python</title>
    <link rel="stylesheet" href="diveintopython.css" type="text/css">

    ... nous coupons la suite pour rester bref ... "

    C'est en essayant d'executer c:\python23\lib> type "c:\downloads\diveintopython\html\toc\index.html" dans une console Python et dans IDLE que j'ai commence a tourner en rond.

    Je n'ai reussi a obtenir a peu pres ce texte qu'en ouvrant C:/diveintopython-5.4/html/toc/index.html avec WordPad:

    <!DOCTYPE html
    PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <title>Plongez au coeur de Python</title>


    ..................................


    Je coupe la suite.

    En tapant C:/diveintopython-5.4/html/toc> TYPE INDEX>HTML dans une console DOS , j'obtiens aussi le meme texte,ou a peu pres.

    Mais je n'arrive toujours pas a savoir ce que veut dire:

    "En l’utilisant avec la suite de tests de sgmllib.py, on obtient la sortie suivante :

    c:\python23\lib> python sgmllib.py "c:\downloads\diveintopython\html\toc\index.html"
    data: '\n\n'
    start tag: <html lang="en" >
    data: '\n '
    start tag: <head>
    data: '\n ' etc.......
    "

    Merci de votre attention

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Pour lancer un prog depuis Python, il faut regarder du côté du module os ou subprocess ( http://docs.python.org/lib/module-subprocess.html )

    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import os
    os.startfile('monprog.py')
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import subprocess
    subprocess.Popen(["c:/python25/python.exe", "monprog.py"])

  5. #5
    Membre extrêmement actif
    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
    Points : 1 658
    Points
    1 658
    Par défaut Merci
    Merci pour les deux modules. Je vais devoir les potasser pour y comprendre quelque chose.

    Merci pour l'adresse. Je connaissais python.org, mais il va falloir que j'y aille regulierement.

    Le probleme pour un debutant comme moi:
    comment trouver directement un module qui reponde a un besoin precis dans un programme, sans avoir a passer en revue de longues listes de modules dont les descriptions sont en grande partie incomprehensibles parce qu'elles evoquent des notions inconnues ?

    Dit autrement, je veux bien plonger dans l'etude d'un module si je sais qu'il va me servir, mais je ne peux pas etudier tous les modules les uns apres les autres juste pour trouver celui qui peut me servir.

    Il faudrait un tutoriel qui decrive les modules, classes etc d'une maniere simple et pedagogique, pas ces bazars prolifiques qui vont tout de suite dans un detail incomprehensible a un neophyte.

    Le probleme d'un vrai neophyte comme moi est qu'on doit apprendre en meme temps le langage Python ET les principes de la programmation. Apprendre Python n'est facile que pour quelqu'un qui sait deja programmer dans un autre langage.

  6. #6
    Membre extrêmement actif
    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
    Points : 1 658
    Points
    1 658
    Par défaut Concernant mes problemes de depart
    Je fais reference a l'exemple 8.4 de la page http://diveintopython.adrahon.org/html_processing/introducing_sgmllib.html

    J'ai reussi a lire le fichier index.html dont il est question dans cet exemple de deux manieres:
    - avec WordPad
    - avec une commande TYPE dans une console DOS





    Ensuite, en operant a partir d'une console DOS, j'ai aussi reussi a lancer sgmllib sur ce fichier index.html comme il est decrit ci-apres dans la page citee:

    En l’utilisant avec la suite de tests de sgmllib.py, on obtient la sortie suivante :

    c:\python23\lib> python sgmllib.py "c:\downloads\diveintopython\html\toc\index.html"
    data: '\n\n'
    start tag: <html lang="en" >
    data: '\n '
    etc etc etc

    Pour cela, l'une quelconque des commandes suivantes marche:
    C:\> /python25/python python25/lib/sgmllib.py "c:/dipy/html/toc/index.html"
    C:\Python25> python lib/sgmllib.py "c:/dipy/html/toc/index.html"
    C:\Python25/Lib> /python25/python sgmllib.py "c:/dipy/html/toc/index.html"
    Pas de la tarte pour arriver a ce point.

    Bon, maintenant mon probleme est que j'ai lu dans la page citee plus haut le passage suivant:
    " Si on exécute sgmllib.py en lui passant le nom d’un fichier HTML en argument de ligne de commande, il affichera les balises et les autres éléments au fur et à mesure qu’il analyse le fichier "

    Mais sur la page http://docs.python.org/lib/module-sgmllib.html , je ne vois nulle part decrit comment on passe un nom de fichier en argument de ligne de commande a sgmllib.
    J'ai pris exemple sur la commande c:\python23\lib> python sgmllib.py "c:\downloads\diveintopython\html\toc\index.html et en tatonnant je suis arrive aux 3 commandes d'un peu plus haut.

    Mais le probleme: ou trouve-t-on une description de la syntaxe pour appeler les modules et autres trucs de Python dans differentes situations (IDLE, console DOS, console Python ) ?

    Merci pour toute reponse

Discussions similaires

  1. Lancer des requêtes DB2 par ligne de commande Unix
    Par rstephane dans le forum DB2
    Réponses: 3
    Dernier message: 27/05/2009, 15h36
  2. [WD-2003] Lancer une macro de template personnalisé par ligne de commande
    Par ilive dans le forum VBA Word
    Réponses: 4
    Dernier message: 16/04/2009, 09h28
  3. Lancer un plan de maintenance par ligne de commande
    Par SILO dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/10/2008, 09h45
  4. Lancer un job par ligne de commande
    Par SILO dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/04/2008, 15h13
  5. Lancer les prog en ligne de commande
    Par meufeu dans le forum Applications et environnements graphiques
    Réponses: 9
    Dernier message: 06/09/2004, 17h13

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