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).
Les arguments de ligne de commande sont quelque chose comme ceci:
python test.py -t 10
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.
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
Obtenir
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