[Python] J'ai essayé de créer un programme simple qui fonctionne sur la ligne de commande en utilisant argparse

ArgumentParser (argparse) Lors de l'exécution d'un programme écrit en Python sur la ligne de commande, vous pouvez facilement utiliser des arguments de ligne de commande en utilisant ArgumentParser (argparse).

Qu'est-ce qu'un argument de ligne de commande?

Les arguments de ligne de commande sont quelque chose comme ceci:

python test.py -t 10

Essayez d'utiliser

À propos du type instantané

Le type instantané est généralement

e=V_{m} \sin(2 \pi f t \pm \phi)

Il est représenté par. Cette fois

V_{m}[V],f[Hz],\phi[deg]

Est changé avec une variable de ligne de commande (l'unité dans le programme dans []) et essaie de dessiner divers graphiques.

La source

Chargez la bibliothèque. Vous pouvez l'utiliser en lisant argparse.

import argparse

Définissez la valeur initiale de chaque argument

    parser = argparse.ArgumentParser()
    parser.add_argument('--phase', '-p', type=float, default=0, help='Definition of a point in time')
    parser.add_argument('--voltage', '-v', type=float, default=100, help='Definition of a effective value')
    parser.add_argument('--frequency', '-f', type=float, default=60, help='Definition of a frequency')
    parser.add_argument('--sampletime', '-t', type=float, default=0.0001, help='Definition of sampletime')    
args = parser.parse_args()

Affichage de la valeur numérique spécifiée

    print('phase : {}\n'.format(args.phase))
    print('voltage : {}\n'.format(args.voltage))
    print('frequency : {}\n'.format(args.frequency))

Dessiner un graphique

    t = np.arange(0, 1/60, args.sampletime)
    y1 = args.voltage * np.sqrt(2) * np.sin(2 * np.pi * args.frequency * t + np.deg2rad(args.phase))
    y2 = args.voltage * np.sqrt(2) * np.sin(2 * np.pi * args.frequency * t)
    plt.plot(t, y1)
    plt.plot(t, y2)

    plt.grid(True)

    plt.show()

    #plt.savefig("img.png ")

Sur la ligne de commande

python test.py -p 45

étant donné que

Figure_1.png

Obtenir

Code entier

import numpy as np
import argparse
import matplotlib.pyplot as plt

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--phase', '-p', type=float, default=0, help='Definition of a point in time')
    parser.add_argument('--voltage', '-v', type=float, default=100, help='Definition of a effective value')
    parser.add_argument('--frequency', '-f', type=float, default=60, help='Definition of a frequency')
    parser.add_argument('--sampletime', '-t', type=float, default=0.0001, help='Definition of sampletime')

    args = parser.parse_args()

    print('phase : {}\n'.format(args.phase))
    print('voltage : {}\n'.format(args.voltage))
    print('frequency : {}\n'.format(args.frequency))

    t = np.arange(0, 1/60, args.sampletime)
    y1 = args.voltage * np.sqrt(2) * np.sin(2 * np.pi * args.frequency * t + np.deg2rad(args.phase))
    y2 = args.voltage * np.sqrt(2) * np.sin(2 * np.pi * args.frequency * t)
    plt.plot(t, y1)
    plt.plot(t, y2)

    plt.grid(True)

    plt.show()

if __name__ == '__main__':
    main()

Recommended Posts

[Python] J'ai essayé de créer un programme simple qui fonctionne sur la ligne de commande en utilisant argparse
J'ai essayé de créer un BOT de traduction qui fonctionne avec Discord en utilisant googletrans
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai créé un éditeur de texte simple en utilisant PyQt
[LPIC 101] J'ai essayé de résumer les options de commande qui sont faciles à faire une erreur
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
J'ai créé une bibliothèque Python pour appeler l'API de LINE WORKS
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
Notes J'ai recherché la création d'outils de ligne de commande en Python
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
J'ai essayé d'utiliser la bibliothèque Python "pykakasi" qui peut convertir des kanji en romaji.
[Python] Smasher a essayé de faire du processus de chargement de la vidéo une fonction à l'aide d'un générateur
[Python] J'ai essayé de créer une IA Shiritori qui améliore le vocabulaire grâce aux batailles
[Python] Un programme qui calcule la différence entre les valeurs totales diagonales
En utilisant PyAutoGui, j'ai essayé d'automatiser le test d'interface utilisateur du programme VB6 fonctionnant sur Windows Server 2003 R2 (feuille de triche de commande d'entrée).
Une histoire qui était pratique lorsque j'ai essayé d'utiliser le module d'adresse IP python
Notes diverses sur l'utilisation de python pour les projets
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
[1 hour challenge] J'ai essayé de créer un site de bonne aventure qui soit trop adapté à Python
J'ai essayé de créer une commande de recherche de documents slack à l'aide de Kendra annoncée immédiatement à re: Invent 2019
J'ai essayé de créer un générateur qui génère une classe conteneur C # à partir de CSV avec Python
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de créer un environnement serveur qui fonctionne sous Windows 10
J'ai essayé de créer un système qui ne récupère que les tweets supprimés
Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
[Python] J'ai essayé d'implémenter un tri stable, alors notez
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
J'ai essayé de numériser le tampon estampé sur papier en utilisant OpenCV
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
[Ev3dev] Créez un programme qui capture LCD (écran) en utilisant python
J'ai essayé d'enregistrer une station sur la plateforme IoT "Rimotte"
J'ai essayé de créer une application de notification de publication à 2 canaux avec Python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[Python] Japonais simple ⇒ J'ai essayé de créer un outil de traduction en anglais
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
Module standard Python utilisable en ligne de commande
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
Créez un outil de ligne de commande pour convertir des dollars en yens en utilisant Python
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
J'ai essayé de créer une configuration RAID logicielle SATA qui démarre le système d'exploitation sur Ubuntu Server
J'ai créé une API Web
Un programme qui utilise Python pour lire des fichiers indésirables
[Python] Un programme qui arrondit le score
J'ai essayé de créer un script qui retrace les tweets d'un utilisateur spécifique sur Twitter et enregistre l'image publiée à la fois
[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!
J'ai essayé de mettre en œuvre une blockchain qui fonctionne réellement avec environ 170 lignes
J'ai essayé de créer un programme qui convertit les nombres hexadécimaux en nombres décimaux avec python
[Python] Un programme qui calcule le nombre de chaussettes jumelées
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)