(Python)commandes système depuis python

Stéphane -  
 Jonkur -
Bonjour,

je voudrais réaliser un programme en python qui permette d'utiliser la commande schred de linux assez facilement mais je n'arrive pas a utiliser la commande directement depuis python.

Si vous pouviez m'aider et me donner la commande qui me permette d'utiliser les commandes de l'os utilisé depuis python ce serait super

Je vous en remercie par avance

Stéphane
Configuration: Windows 2000
Firefox 2.0.0.3

10 réponses

  1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Et pourquoi pas simplement un os.system() ?

    Je m'en sert pour faire des manipulations d'image avec ImageMagick.
    ça marche bien sous Windows et Linux.

    Par contre, si vous voulez un meilleur contrôle sur les processes lancés, je vous recommande le module subprocess
    http://docs.python.org/dev/lib/module-subprocess.html
    3
    1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      Ah ben vi, ça marche :-)

      os.system("dir c:")
      0
  2. zoubouloune
     
    lol, c'est simple.

    Tu fais ça :

    import os
    os.execl("C:\WINDOWS\system32\cmd","/C","dir","C:\")

    ça marche nickel
    2
  3. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Utilise os.execl(), c'est ce qu'il y a de plus pratique je pense.

    Ca s'utilise comme ça:
    import os
    os.execl("commande", "arg1", "arg2", ...)

    Exemple avec avec "ls /":
    #C'est mieux de mettre le chemin complet de l'executable
    os.execl("/bin/ls", "arg1")


    Et il y a d'autres méthodes exec qui pourront peut être mieux convenir pour ce que tu veux faire:
    http://docs.python.org/lib/os-process.html
    1
  4. Stéphane
     
    Ok je te remercie de ta reponse.

    Si j'ai bien compris, et pour exemple si j'utilise un os windows et que je veux simplement faire un dir, la commande pourrait etre :

    os.execl("dir", "c:\") ????

    Je te pose la question en ces termes car je suis au boulot, sous windows et je n'ai pas l'environnement python sous la main.

    Merci de ton aide
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Euh ben là j'ai un doute.
    dir, est ce une application windows ou une commande qui ne peut être comprise que par cmd.exe (l'interpréteur de commande windows)...?
    0
  7. Stéphane
     
    Effectivement, ca coince

    J'ai essayé

    #/usr/bin/python
    os.execl("cmd.exe", "dir c:\")
    raw_input('hé t\'appuie...')

    Mais ca coince aussi

    Je continue mes tests

    Mais si tu as une idée je suis preneur

    Stéphane
    0
  8. Stéphane
     
    Ben en fait non ca ne fonctionne pas :

    >>> os.system("dirc:")
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    NameError: name 'os' is not defined

    Voila ce que ca me dit

    Une idée sur comment definir 'os' ?

    Merci d'avance

    Stéphane
    0
    1. Jonkur
       
      >>> os.system("dirc:")
      il faut aspacer

      >>> os.system("dir c:")
      0
  9. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    euh.... import os ?

    Jette un coup d'oeil dans tous les modules fournis avec Python:
    http://docs.python.org/modindex.html
    0
  10. Stéphane
     
    Merci je vais jeter un oeil.

    Amitiés

    Stéphane
    0