Lancer la commande mount via popen
Bonjour,
Je suis sur python 3.8.10 et j’essaie de faire un retour du shell avec plusieurs arguments, en vain.
Les importations
import tkinter as tk, os import subprocess
La commande shell à exécuter
CMD = "pkexec mount -t vfat /dev/sdg4 /media/laurent/ZP100"
Essai
retour = os.popen(CMD).read() print ("retour : ", retour)
Le retour est vide sauf dans le terminal
mount: /media/laurent/ZP-100: le périphérique spécial /dev/sdg4 n'existe pas. retour :
j'en ai fait d'autre avec subprocess, Mais avec Popen je n'arrive pas à avoir un retour dans la variable retour .
Merci d'avance pour vos avis et conseils.
Linux / Firefox 109.0
- Lancer la commande mount via popen
- Invite de commande - Guide
- Commande terminal mac - Guide
- Find and mount - Télécharger - Récupération de données
- Mount system android - Guide
- Commande dism - Guide
8 réponses
Bonjour,
C'est une commande pour monter un périphérique, peut-être qu'il n'y a pas de valeur
de retour, la commande s'exécute et l'action se fait ou pas
Dans ton post du 24 janvier, je t'avais expliqué cette méthode que tu utilise ici, mais pour un autre
type de commande
Par exemple, moi je récupère le no de série de mon pc comme ceci:
s_nb = os.popen('wmic bios get serialnumber').read()
car il y a bien une valeur à récupérer (le no de série)
mais dans ton cas, peut-être que ceci suffit:
ret = os.system(CMD)
pour avoir un statut de retour de la commande (erreur ou succès)
Au fait, ce n'est pas en vingt mais en vain :-)
Bonjour,
j'ai fait
retour = os.popen(CMD).read() print ("retour : ", retour)
et vous vous me dites :
s_nb = os.popen('wmic bios get serialnumber').read()
c'est pareil, et d'essayer avec
ret = os.system(CMD)
1er essai avec :
retour = os.system(CMD) print ("retour : ", retour) text_box.insert(tk.END, retour)
j'ai dans la console :
mount: /media/laurent/ZIP-100: le point de montage n'existe pas.
retour : 8192
et dans la listbox
8192
2em test avec :
retour = os.popen(CMD).read() print ("retour : ", retour) text_box.insert(tk.END, retour)
en console il n'y a aucun retour avec la variable retour alors qu'il y un un message dans la console
mount: /media/laurent/ZIP-100: le point de montage n'existe pas.
retour :
La listbox est vide
Il me faut un retour pour l'utilisateur, je n'arrive pas a trouver la soluce pour avoir en retour :
mount: /media/laurent/ZIP-100: le point de montage n'existe pas.
PS : Pour le message du 24/01 je n'ai pas reçus l'email de réponse ?
Merci.
Bonsoir,
avec
import sys try: retour = os.system(CMD) except: print("sys.exc_info()[1] : ",sys.exc_info()[1]) print ("retour : ", retour) text_box.insert(tk.END, retour)
j'ai dans le terminal
mount: /media/laurent/ZIP-100: le point de montage n'existe pas.
retour : 8192
est dans la listbox
8192
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour,
Ok, mais sans les lignes 9 et 10, juste ceci, ça donne quoi ? :
import sys try: os.system(CMD) except: text_box.insert(tk.END, sys.exc_info()[1])
Bonjour,
Idem, j'ai dans le terminal
mount: /media/laurent/ZIP-100: le point de montage n'existe pas.
est la listbox est vide.
Merci.
Bonjour,
Si le point de montage n'existe pas il faut le créer au préalable, soit en shell :
sudo mkdir -p /media/laurent/ZIP-100
... soit avec os.mkdir.
Bonne chance