[Python] os.excel

Marc -  
 Brick -
Bonjour a tous,

J'essaie d'ouvrir et de lire un fichier directement depuis python (avant de passer a quelques choses de plus sérieux) avec la commande os.excel mais je bute car l'os est toujours indéfini et je ne vois pas comment le définir.

Si vous pouviez me donner un coup de main, ça serait sympa

Je vous pose mon code avec la réponse d'erreur.

Marc

>>> from os import *
>>> os.excel('/home/loup/Documents/Divers/','cat Anglais.txt')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'os' is not defined
Configuration: Linux
Firefox 2.0.0.3

5 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Je crois que tu t'es embrouillé.
    os.execl s'utilise comme ça:
    os.execl(chemin vers_executable, arg1, arg2,...)

    Et quand je dis chemin vers l'executable, c'est chemin complet, avec le nom de l'executable à la fin.

    Voilà donc ce que ça devrais donner chez toi:
    os.execl("/bin/cat", "/home/loup/Documents/Divers/Anglais.txt")
    1
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Quand tu mets
    from os import *
    Ca importe tout depuis os dans l'espace de nom courant.
    Donc os.execl deviendra execl.

    Pour l'utiliser comme ça: os.execl, alors il faut que tu importes comme ça:
    import os
    Ce qui est recommandé car un même nom de fonction peut se trouver dans plusieurs modules

    Et c'est os.execl et non pas os.excel
    0
  3. Marc
     
    Merci beaucoup Kilian.

    Effectivement petite erreur d'orthographe. Je ferais plus attention a l'avenir dans le recopiage.

    Par contre quelque soit la syntaxe utilisé, j'ai toujours une erreur :

    os.execl ('/home/loup/Documents/Divers','cat Anglais.txt')
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    File "/usr/lib/python2.4/os.py", line 309, in execl
    execv(file, args)
    OSError: [Errno 13] Permission denied

    ou encore

    os.execl('/home/loup/Documents/Divers/','cat','Anglais.txt')
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    File "/usr/lib/python2.4/os.py", line 309, in execl
    execv(file, args)
    OSError: [Errno 13] Permission denied

    ou encore

    >>> os.execl('/home/loup/Documents/Divers/','Anglais.txt','cat')
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    File "/usr/lib/python2.4/os.py", line 309, in execl
    execv(file, args)
    OSError: [Errno 13] Permission denied

    M'enfin, tout ça pour dire que je ne sais plus comment m'y prendre...

    Merci encore de votre aide.

    Marc
    0
  4. Marc
     
    Merci beaucoup, ca fonctionne

    Effectivement, je prenais le problème a l'envers.

    Par contre, ca marche si j'utilise par exemple kwrite avec : os.execl('/usr/bin/kwrite','home/loup/Documents/Divers/Anglais.txt')
    mais pas si j'utilise cat.

    Bizarre non ?

    En effet, ca reste bloqué sur une ligne noire (dans le shell)

    Amitiés
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Brick
     
    just like this:
    os.execl("/bin/cat", "cat", "home/loup/Documents/Divers/Anglais.txt")
    or
    os.execv("/bin/cat", ("cat", "home/loup/Documents/Divers/Anglais.txt"))
    0