IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Comment crée un argument python?


Sujet :

Python

  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2021
    Messages : 13
    Par défaut Comment crée un argument python?
    Bonjour,

    Je suis en train de programmer un oscilloscope et pour cela j'ai crée 2 scripts et plusieurs fichier.SET.
    Et j'aimerais les rendre paramétrable c'est a dire les faire passer en argument mais je ne sais pas trop comment m'y prendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    import pyvisa
    import time
     
    rm = pyvisa.ResourceManager()
    (type(rm.list_resources()))
     
    laliste = rm.list_resources()
     
    for  unelement in laliste:
        (unelement)
        scope = rm.open_resource(unelement)
     
     
        print(scope.query('*IDN?'))
     
    scope.timeout = 100000
    scope.read_termination = '\n'
    scope.write_termination = '\n'
     
     
     
    f = open('C:\\Users\\stagiaire\\Desktop\\Stage_El_harrani\\oscilloscope\\script python py\\comparaison.set')
     
     
    fileArray = f.read().splitlines();
    for f in fileArray:
        linesArray = f.split(";");
        for idx,l in enumerate(linesArray):
            if(l != ''):
                if(idx == 0):
                    splitedData = l.split(" ");
                    structure = splitedData[0];
     
                    scope.write(structure + " " + splitedData[1]);
     
                else:
                    splitedData = linesArray[0].split(" ");
                    path = splitedData[0].split(":")[:-1];
                    structure = ":".join(path) + ":" + l.split(" ")[0];
     
                    scope.write(structure + " " + l.split(" ")[1]);
    Voici le code que j'ai réaliser. J'ai eu a utiliser pyvisa https://pyvisa.readthedocs.io/en/lat...unication.html mais je ne pense pas que vous ayez besoin d'avoir des informations dessus car la ligne que je veux rendre parametrable est :
    f = open('C:\\Users\\stagiaire\\Desktop\\Stage_El_harrani\\oscilloscope\\script python py\\comparaison.set')

    J'aimerais crée un fichier c++ qui appellerais ce script avec une bibliothèque choisie. Je sais comment appeler le script et l'executer mais du coup le fichier.SET est toujours le même et j'aimerais en faire un argument si c'est possible.

    Je mets en PJ une fichier.SET (j'ai recopier le fichier.SET dans untxt parce que le forum ne les prend pas en compte) ainsi que le code c++ pour appeler le script.

    Merci à vous
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2018
    Messages : 29
    Par défaut
    Pour une gestion simple d'arguments, sys.argv peut suffir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import sys
     
    arg = sys.argv[1]
    print(arg)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ python3 script.py mon_fichier
    mon_fichier
    Pour faire quelque chose de plus complexe (et plus joli), voir argparse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--config', dest="fichier_config")
     
    arg = parser.parse_args()
    print(arg)
    print(arg.fichier_config)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ python3 script.py --config mon_fichier
    Namespace(fichier_config='mon_fichier')
    mon_fichier

  3. #3
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2021
    Messages : 13
    Par défaut
    J'ai donc ajouté à mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import sys
     
    arg = sys.argv[1]
    print(arg)
    et écrit sur l'invite de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ python3 code_fini.py comparaison.SET

    Mais voici le message d'erreur:
    C:\Users\stagiaire>$ python3 code_fini.py comparaison.SET
    '$' n’est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    hello,
    Citation Envoyé par heh__ Voir le message
    Mais voici le message d'erreur:
    C:\Users\stagiaire>$ python3 code_fini.py comparaison.SET
    '$' n’est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    dans une invite de commande windows il ne faut pas mettre de $ avant la commande
    Ceci devrait mieux fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    python3 code_fini.py comparaison.SET
    Ami calmant, J.P

  5. #5
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2021
    Messages : 13
    Par défaut
    Bonjour merci à toi mais ça n'a toujours pas l'air de fonctionner, voici le message d'erreur:
    C:\Users\stagiaire>python3 code_fini.py comparaison.SET
    Python est introuvable. ExÚcutez sans argument pour procÚder Ó l

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2018
    Messages : 29
    Par défaut
    Hop!

    Désolé, je t'ai indiqué les commandes linux (uniquement pour montrer les effets du code, c'est à adapter pour windows. Je ne me souvenait plus de ce qu'est le prompt sous windows, et la commande est sûrement simplement python et non python3, comme tu dois le faire d'habitude.

  7. #7
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2021
    Messages : 13
    Par défaut
    Pas de soucis mais voila ce que cela m'indique maintenant:
    C:\Users\stagiaire>python code_fini.py comparaison.SET
    python: can't open file 'C:\Users\stagiaire\code_fini.py': [Errno 2] No such file or directory

    dois-je copier mon code dans le répertoir de base?

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    pyvisa est un wrapper qui permet aux programmeurs Python d'utiliser la bibliothèque VISA développée pour les programmeurs C/C++.

    Ecrire un programme C++ qui appelle un programme Python pour faire quelques instructions avec pyvisa est juste du non sens: autant tout écrire en C++ et ça sera bien moins compliqué.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2021
    Messages : 13
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    pyvisa est un wrapper qui permet aux programmeurs Python d'utiliser la bibliothèque VISA développée pour les programmeurs C/C++.

    Ecrire un programme C++ qui appelle un programme Python pour faire quelques instructions avec pyvisa est juste du non sens: autant tout écrire en C++ et ça sera bien moins compliqué.

    - W
    Salut,
    Ca aurrait été nettement plus simple or l'oscilloscope que je programme n'accepte pas les script c++ seulement le python. Et pour que mon recruteur puisse utiliser les scripts je dois forcement passer par du c++

  10. #10
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Ca aurrait été nettement plus simple or l'oscilloscope que je programme n'accepte pas les script c++ seulement le python. Et pour que mon recruteur puisse utiliser les scripts je dois forcement passer par du c++
    En tant que développeur tu as devoir de conseil, as-tu exprimé la difficulté à ton recruteur de cette manière de faire ?

    Après on peut intégrer des modules Python dans un programme C++ et C, c'est un peu complexe, mais plus naturel dans le fait qu'on utilise une librairie Python écrite en C.

  11. #11
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par heh__ Voir le message
    Ca aurrait été nettement plus simple or l'oscilloscope que je programme n'accepte pas les script c++ seulement le python. Et pour que mon recruteur puisse utiliser les scripts je dois forcement passer par du c++
    Votre script Python ne tourne pas sur l'oscilloscope mais sur un PC reliée à l'oscillo. via un cable USB. Votre script se contente d'expédier des messages à l'oscillo via pyVISA.
    Faire la même chose en C++ ne pose aucun problème (C++ tourne sur Windows) d'autant que c'est la bibliothèque VISA qui fait le gros du boulot.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 831
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par heh__ Voir le message
    Pas de soucis mais voila ce que cela m'indique maintenant:
    C:\Users\stagiaire>python code_fini.py comparaison.SET
    python: can't open file 'C:\Users\stagiaire\code_fini.py': [Errno 2] No such file or directory

    dois-je copier mon code dans le répertoir de base?
    Avant de programmer tu es censé savoir te débrouiller avec ton OS. Savoir ce qu'est un chemin, un fichier, savoir le nommer de façon relative (relativement par rapport à ta position) ou absolue

    Manifestement tu te trouves dans le dossier "C:\Users\stagiaire" quand tu travailles. Si tu appelles "code_fini.py" alors ton OS cherche le fichier "code_fini.py" par rapport à ta position (ce qu'on appelle un "nom relatif") donc il cherche "C:\Users\stagiaire\code_fini.py". Si maintenant le fichier que tu veux invoquer ne se trouve pas à cet emplacement mais dans (par exemple) "c:\temp" alors tu peux l'appeler soit depuis cette position (python c:\temp\code_fini.py, et là c'est un nom absolu car il ne dépend pas de ta position à toi), soit depuis ta position (python ..\..\temp\code_fini.py et là ça redevient un nom relatif). Et ça n'a rien à voir avec Python.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Comment créer une aplet python
    Par acieroid dans le forum Interfaçage autre langage
    Réponses: 10
    Dernier message: 03/02/2006, 11h13
  2. Comment passer des argument a un script php ?
    Par Florina dans le forum Linux
    Réponses: 2
    Dernier message: 11/12/2005, 14h38
  3. [EXCEL]Comment crée t'on un header, une rupture ?
    Par elitost dans le forum Excel
    Réponses: 2
    Dernier message: 18/11/2005, 00h03
  4. Comment passer les arguments à un script perl
    Par belgampaul dans le forum Langage
    Réponses: 4
    Dernier message: 06/08/2005, 12h52
  5. comment crée un .jar
    Par bizerta dans le forum JBuilder
    Réponses: 2
    Dernier message: 22/06/2005, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo