[python] Util. d'1 variable dans os.system

Fermé
Stéphane - 2 juin 2007 à 09:37
 Stéphane - 2 juin 2007 à 15:21
Bonjour,

Je met en place un script en python qui devrait me permettre de localiser un fichier, puis de lui passer un 'shred' et enfin de l'effacer avec un "rm" mais voila lors de l'utilisation de slocate grace auquel je peux trouver le chemin exact du fichier a effacer, je n'arrive pas a utiliser la variable dans laquelle j'ai placé le chemin du fichier dans un nouveau os.system.

Je vais essayer d'être clair :
j'utilise un recup =os.system("slocate fichier")
pour récuperer le chemin mais après je n'arrive pas a placer la variable recup dans le prochain os.system pour passer le shred sur le fichier.

os.system ("shred -n3",recup) ne fonctionne pas ainsi que os.system("shred -3 recup")

Si vous pouviez me donner un coup de main ce serait super.

Vous en remerciant par avance

Stéphane

6 réponses

C'est bon j'ai trouvé la solution.

Il suffit d'ajouter + entre la commande et la variable.

amités
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
2 juin 2007 à 12:03
os.system ne revoie par ce qui est sorti par le programme, mais seulement le code de retour du programme (int).
0
Exact, et mince.

Si tu a une idée pour resoudre ceci ???

Merci

amitiés
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
2 juin 2007 à 14:00
subprocess permet de récupérer la sortie standard des programmes (stdout et stderr).
0

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

Posez votre question
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 1 526
2 juin 2007 à 14:38
Du côté subprocess, voici un exemple avec la fonction os.popen.
Imaginons que je veuille récupérer le résultat de "ls /":
>>> import os
>>> a=os.popen("/bin/ls /", "r")
>>> b=a.read()
>>> a.close()
>>> print b
bin
boot
cdrom
dev
etc
home
etc....

Tu vois? os.popen crée un processus avec la commande correspondante
au premier paramètre puis il renvoie un objet fichier dans lequel tu peux lire la sortie du programme en l'ouvrant en lecture ("r").
Tu lis ce fichier (read()) et tu as ce que te renvoie la commande....
0
Ok merci,

je vais regarder en ce sens et modifier le script de depart.

Merci encore

Stéphane
0