Lecture tableau

Résolu/Fermé
heh - 9 juin 2021 à 11:02
 heh - 9 juin 2021 à 15:14
Bonjour,

je débute en informatique et j'avais besoin de votre aide.
Je réalise l'automatisation d'oscilloscope et en fonction de chacun d'entre eux une référence va m'être transmise par l'oscilloscope.
Il y a une fonction que je rentre qui est la suivante:
rm.list_resources()

et voila ce qu'elle renvoie:
('USB0::0x0699::0x03A4::C040158::INSTR', 'USB::0x0699::0x03A4::C040158::INSTR')

Et pour résoudre mon probleme j'aimerais pouvoir récupérer les élément entre " ' ". Pour pouvoir le faire passer en "parametre". Car dans la ligne juste apres dans le code je vais avoir besoin de l'utiliser. je devrais faire ça:
scope = rm.open_resource('USB0::0x0699::0x03A4::C040158::INSTR')


Or dans le cas actuel j'ai moi même récris 'USB0::0x0699::0x03A4::C040158::INSTR' dans le code et cela n'est donc pas utilisable avec d'autres oscilloscope je vais etre obligé de modifier mon code à chaque fois.

Avez vous une solution de code? Comment je peux crée un tableau ou autre? Merci a vous

Configuration: Windows / Edge 91.0.864.41
A voir également:

6 réponses

yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 Ambassadeur 1 551
9 juin 2021 à 11:28
bonjour,
quel est le type de l'objet retourné par la fonction?
print(type(rm.list_resources()))

à tout hasard:
laliste=rm.list_resources()
for each unelement in laliste:
    scope = rm.open_resource(unelement)
1
c'est une chaine de caractère.
Lorsque j'essaye votre partie de code cela m'indique:
for each unelement in laliste:
^
SyntaxError: invalid syntax
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 551
9 juin 2021 à 12:05
le each est en trop.
as-tu fait
print(type())
?
les parenthèses font partie de la chaîne?
0
Oui oui,
voici le code entrée:
import pyvisa
import time

rm = pyvisa.ResourceManager()
print(type(rm.list_resources()))

laliste = rm.list_resources()

for unelement in laliste:
scope = rm.open_resource(unelement)


et voila ce que cela me retourne:
<class 'tuple'>

Je ne comprends pas trop...
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 551
9 juin 2021 à 12:18
il ne s'agit donc pas d'une chaine de caractères, mais d'un tuple.
que ne comprends-tu pas?
laliste = rm.list_resources()
for  unelement in laliste:
    print(unelement)
    scope = rm.open_resource(unelement)
    print (scope)
0
ahh si je comprends merci beaucoup, en fait il me faudrait également récupérer les " ' " autour de USB0::0x0699::0x03A4::C040158::INSTR sinon je ne peux pas envoyer la commande, comment puis-je faire?
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 551
9 juin 2021 à 14:29
pourquoi penses-tu qu'ils sont perdus?
0

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

Posez votre question
Parce que vous savez de base quand je le copiais directement j'écrivait:
scope = rm.open_resource('USB0::0x0699::0x03A4::C040158::INSTR')
donc avec les " ' ".
Or losque par exemple je print(unelement) on me renvoir:
USB0::0x0699::0x03A4::C040158::INSTR sans les " ' ".
Mais pour pouvoir l'utiliser il me veut les " ' " pour envoyer la commande plus tard sinon ça ne fonctionne pas.
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 551
9 juin 2021 à 14:43
alors
scope = "'" + rm.open_resource(unelement) + "'"
0
Je ne comprends pas, ce que vous m'avais donner me donne bien ce que je veux mais voila ce qu'il se passe.
voici le code entré:
import pyvisa
import time

rm = pyvisa.ResourceManager()
print(type(rm.list_resources()))

laliste = rm.list_resources()

for unelement in laliste:
print(unelement)
scope = "'" + rm.open_resource(unelement) + "'"
print(scope)

print(scope.query('*IDN?'))


et voila le message d'erreur:
<class 'tuple'>
USB0::0x0699::0x03A4::C040158::INSTR
Traceback (most recent call last):
File "C:\Users\stagiaire\Desktop\Stage_El_harrani\oscilloscope\script python py\testforum.py", line 11, in <module>
scope = "'" + rm.open_resource(unelement) + "'"
TypeError: can only concatenate str (not "USBInstrument") to str
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 551
9 juin 2021 à 15:09
tu as écrit "Mais pour pouvoir l'utiliser il me veut les " ' " pour envoyer la commande plus tard sinon ça ne fonctionne pas.".

en es-tu certain? qu'as-tu essayé, qu'as-tu obtenu?
0
heh > yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024
Modifié le 9 juin 2021 à 15:14
Je viens de réessayer sans et cela fonctionne très bien j'ai du faire une faute de frappe ou autre je suis désolé. Merci beaucoup pour tout cela vous avez résolu mon problème
0