subprocess - enchainement de commande
Bonjour,
Je souhaite enchainer une commande linux simple genre:
cd dossier
ls
j'ai ecrit une ebauche de script mais elle ne marche pas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import subprocess
cat = subprocess.Popen(['cd', 'dossier'],
stdout=subprocess.PIPE,
)
grep = subprocess.Popen(['ls'],
stdin=cat.stdout,
stdout=subprocess.PIPE,
)
end_of_pipe = grep.stdout
print 'Included files:'
for line in end_of_pipe:
print '\t', line.strip() |
voici le message d'erreur :
Citation:
Traceback (most recent call last):
File "sub.py", line 4, in <module>
stdout=subprocess.PIPE,
File "/usr/lib/python2.7/subprocess.py", line 672, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1213, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
En revanche si je fais
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import subprocess
cat = subprocess.Popen(['mkdir', 'test'],
stdout=subprocess.PIPE,
)
grep = subprocess.Popen(['ls'],
stdin=cat.stdout,
stdout=subprocess.PIPE,
)
end_of_pipe = grep.stdout
print 'Included files:'
for line in end_of_pipe:
print '\t', line.strip() |
Le dossier "test" est crée, donc je pense qu'il ya un problème avec 'cd' ...
Je galère depuis quelques heures, si quelqu'un peut m'aider, ça serait sympa. merci:ccool: