Résultat d'une commande bash dans python

Bonjour,

Je souhaiterais que le résultat d’une commande bash s’affiche dans une interface graphique en python (Tkinter).
Voici la commande en question et son résultat:

$ cat /dev/usbtmc0 Minor Number Manufacturer Product Serial Number 001 Tektronix TDS2002b C630058

Il s’agit d’un oscilloscope numérique connecté en usb.
En fait j’aimerais tester le résultat de cette commande et qu’un message s’affiche dans mon programme python en fonction du résultat, quelque chose du genre:

“l’appareil Tektronix TDS2002b est bien connecté” ou “aucun appareil n’a été détecté, vérifier la connexion!”

C’est possible à votre avis? Je précise que je débute en programmation… Je cherche beaucoup sur le net, mais là je ne trouve pas vraiment ce que je voudrais…

Merci

Le plus simple c’est d’utiliser la fonction open tout simplement :
docs.python.org/tutorial/inputoutput.html

Ok, merci! J’ai trouvé ça:

sortie=os.popen("cat /dev/usbtmc0", "r").read() print sortie

ça marche en console, mais je n’arrive pas à l’intégrer dans un label du genre:

label = Tkinter.Label(self,text="print sortie", fg="red", height="2") label.grid(column=0,row=1,columnspan=5)

Je pensais plutôt :

fichier=open("/dev/usbtmc0", "r").read() sortie=fichier.read() while sortie != "" : print sortie sortie=fichier.read() fichier.close()

Tu peut trouver de la doc ici :
fr.wikibooks.org/wiki/Apprendre_ … s_fichiers

Bon j’ai trouvé ce qui semble me correspondre:

	[code]status, output = getstatusoutput('cat /dev/usbtmc0')
	estConnecte = False
	if not status:
		for ligne in output:
			if ligne.find('Product') != -1:
				vendor = ligne.split()[1]
				modele = ligne.split()[2]
				estConnecte = True
				sortie= "L'appareill %s %s est bien connecté" % (vendor, modele,)
	if not estConnecte:
		sortie= "Aucun appareil detecté"


	label = Tkinter.Label(self,text=sortie, fg="red", height="2")

[/code]

ça a l’air de marcher… Faut juste que je teste avec un appareil connecté! :slight_smile:
Mais j’en ai malheureusement pas sous la main…

Cat ne fait que de la lecture de fichier autant utiliser python pour ça.

fichier=open('/dev/usbtmc0', 'r') ligne=fichier.readline() while ligne != "" : ligne=fichier.readline()

Résolu de cette manière:

            [code]status, output = getstatusoutput('cat /dev/usbtmc0')
	estConnecte = False
	if not status:
		for ligne in output.split('\n'):
			if ligne.find('Product') == -1:
				vendor = ligne.split()[1]
				modele = ligne.split()[2]
				estConnecte = True
				sortie= "L'appareil %s %s est bien connecté" % (vendor, modele,)
	if not estConnecte:
		sortie= "Aucun appareil détecté, vérifiez le branchement de l'oscilloscope!"

	for ligne in output.split('\n'):
		if ligne.find('001') == -1:
			label = Tkinter.Label(self,text=sortie, bg="red")
			label.grid(column=0,row=1,columnspan=8)

	for ligne in output.split('\n'):
		if ligne.find('001') != -1:
			label = Tkinter.Label(self,text=sortie, bg="green")
			label.grid(column=0,row=1,columnspan=8)[/code]

Merci Misterfreez pour ton aide!