ArgumentParser (argparse) Wenn Sie ein in Python in der Befehlszeile geschriebenes Programm ausführen, können Sie mit ArgumentParser (argparse) problemlos Befehlszeilenargumente verwenden.
Befehlszeilenargumente sind ungefähr so:
python test.py -t 10
Momentaner Typ ist im Allgemeinen
e=V_{m} \sin(2 \pi f t \pm \phi)
Es wird vertreten durch. Diesmal
V_{m}[V],f[Hz],\phi[deg]
Wird mit einer Befehlszeilenvariablen (der Einheit im Programm in []) geändert und versucht, verschiedene Diagramme zu zeichnen.
Laden Sie die Bibliothek. Sie können es verwenden, indem Sie argparse lesen.
import argparse
Definieren Sie den Anfangswert jedes Arguments
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()
Anzeige des angegebenen Zahlenwertes
print('phase : {}\n'.format(args.phase))
print('voltage : {}\n'.format(args.voltage))
print('frequency : {}\n'.format(args.frequency))
Zeichnen eines Diagramms
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 ")
An der Kommandozeile
python test.py -p 45
angesichts dessen
Bekommen
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