(Python)commandes système depuis python

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. Modérateur
    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
    1. Modérateur
      Ah ben vi, ça marche :-)

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

    Tu fais ça :

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

    ça marche nickel
    1. Modérateur
      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. 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
        1. Modérateur
          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)...?
          1. 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
            1. 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
              1. >>> os.system("dirc:")
                il faut aspacer

                >>> os.system("dir c:")
            2. Modérateur
              euh.... import os ?

              Jette un coup d'oeil dans tous les modules fournis avec Python:
              http://docs.python.org/modindex.html