[Python] os.excel

Fermé
Marc - 1 juin 2007 à 15:25
 Brick - 24 avril 2010 à 09:50
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

5 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
1 juin 2007 à 15:49
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
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
1 juin 2007 à 15:31
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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