Python> Mit Laufzeitargumenten ausführen> Import argparse verwenden

Betriebsumgebung


Xeon E5-2620 v4 (8 Kerne) x 2
32GB RAM
CentOS 6.8 (64bit)
openmpi-1.8.x86_64 und seine-devel
mpich.x86_64 3.1-5.el6 und seine-devel
gcc version 4.4.7 (Und Gfortran)
NCAR Command Language Version 6.3.0
WRF v3.7.Verwende 1.
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
Python 3.6.0 on virtualenv

Ich möchte ein Laufzeitargument in dem zu implementierenden Python-Skript angeben und ausführen.

Referenz http://qiita.com/munkhbat1900/items/d7f9b11fb0965085964e Referenz http://qiita.com/petitviolet/items/b8ed39dd6b0a0545dd36

v0.1 > AttributeError: 'Namespace' object has no attribute 't'

Die folgende Implementierung wurde unter Bezugnahme auf die obigen zwei vorgenommen.

test_python_170323i.py


import argparse

parser = argparse.ArgumentParser(description = "do something")

parser.add_argument(
	'-t',
	'--timeIndex',
	type = int,
	help = 'time index for netCDF file',
	required = True)

cmd_args = parser.parse_args()

print(cmd_args.t)
$ python test_python_170323i.py -t 314
Traceback (most recent call last):
  File "test_python_170323i.py", line 14, in <module>
    print(cmd_args.t)
AttributeError: 'Namespace' object has no attribute 't'

Es gibt kein Attribut namens t.

v0.2> Erfolg

test_python_170323i.py


import argparse

parser = argparse.ArgumentParser(description = "do something")

parser.add_argument(
	'-t',
	'--timeIndex',
	type = int,
	help = 'time index for netCDF file',
	required = True)

cmd_args = parser.parse_args()

print(cmd_args.timeIndex)

Ergebnis


$ python test_python_170323i.py -t 314
314

Wenn "--timeIndex" angegeben wird, wird beim Lesen anscheinend ".timeIndex" anstelle von ".t" verwendet.

https://docs.python.jp/3/library/argparse.html Es scheint verwandt zu sein.

v0.3> Geben Sie den Attributnamen an

Es scheint, dass Sie den Attributnamen durch Angabe von dest angeben können.

https://docs.python.jp/3/library/argparse.html 16.4.1.2. Fügen Sie ein Argument hinzu

Das Attribut accumulate wird in der Befehlszeile angegeben, wenn --sum angegeben wird

import argparse

parser = argparse.ArgumentParser(description = "do something")

parser.add_argument(
	'-t',
	'--timeIndex',
	dest='time_index',
	type=int,
	help='time index for netCDF file',
	required=True)

cmd_args = parser.parse_args()

print(cmd_args.time_index)

Bemerkungen

$ python calc_latlon_avg_std_170323.py --timeIndex -20
total: 3477.89
avg_lat: 40.480
avg_lon: 116.246
std_lat: 0.137
std_lon: 0.103
$ python calc_latlon_avg_std_170323.py --timeIndex 4
total: 3477.89
avg_lat: 40.480
avg_lon: 116.246
std_lat: 0.137
std_lon: 0.103

-20 wird akzeptiert, wenn timeIndex angegeben ist. Der Wert wird bei 24 umgangen, was dem Ergebnis von 4 entspricht. (Der timeIndex wird tatsächlich durch [0..23] angegeben.)

Recommended Posts

Python> Mit Laufzeitargumenten ausführen> Import argparse verwenden
Führen Sie Python mit VBA aus
[Python] Verwenden Sie JSON mit Python
Führen Sie prepDE.py mit python3 aus
Verwenden Sie Mecab mit Python 3
Verwenden Sie DynamoDB mit Python
Führen Sie Blender mit Python aus
Verwenden Sie Python 3.8 mit Anaconda
Verwenden Sie Python mit Docker
Importieren Sie tsv mit Python
Führen Sie iperf mit Python aus
Führen Sie eine Python-Datei mit relativem Import in PyCharm aus
Verwenden Sie die Trello-API mit Python
Führen Sie Python mit PyCharm aus (Windows)
Führen Sie Python mit CloudFlash aus (arm926ej-s)
Importieren Sie vtk mit Brew Python
Verwenden Sie die Twitter-API mit Python
Verwenden Sie TUN / TAP mit Python
Wie benutzt man Python Argparse?
Führen Sie Label mit tkinter [Python] aus.
Verwenden Sie die Unterschall-API mit Python3
[Python] Ich möchte die Option -h mit argparse verwenden
Verwenden Sie eine Point Grey-Kamera mit Python (PyCapture2).
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Arbeiten mit LibreOffice in Python: Importieren
Führen Sie Rotrics DexArm mit der Python-API aus
Führen Sie mruby mit Python oder Blender aus
Verwenden Sie NAIF SPICE TOOL KIT mit Python
(Hinweis) Seien Sie vorsichtig mit Python Argparse
Führen Sie XGBoost mit Cloud Dataflow (Python) aus.
Verwenden Sie rospy mit virtualenv in Python3
Führen Sie Aprili von Python auf Orange aus
Führen Sie python3 Django1.9 mit mod_wsgi aus (deploy)
Verwenden Sie Python in pyenv mit NeoVim
Verwenden Sie die Windows 10-Sprachsynthese mit Python
Verwenden Sie OpenCV mit Python 3 in Window
Bis Python auf Apache läuft
Verwenden Sie PostgreSQL mit Lambda (Python + psycopg2)
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Verwenden Sie smbus mit python3 in einer pyenv-Umgebung
Verwenden Sie DeepL mit Python (für die Artikelübersetzung)
Verwenden Sie Tabpy mit Cloud Run (auf GKE)
Verwenden Sie den Amazon Simple Notification Service mit Python
[Einführung in Python] Verwenden wir foreach mit Python
Verwenden Sie PIL oder Pillow mit Cygwin Python
[Python] Verwendung von import sys sys.argv
[Python] Listenelemente mit Argumenten variabler Länge anzeigen
Verwenden Sie die Verschlüsselung der Verschlüsselungsbibliothek mit dem Python-Image von Docker
Verwenden Sie Application Insights mit Python 3 (einschließlich Flaschen).
Führen Sie eine Python-Webanwendung mit Docker aus
Verwenden von C ++ - Funktionen aus Python mit pybind11
Python> Datum / Uhrzeit> Laufzeitargumente> Starten Sie die Verarbeitung sofort
Verwenden Sie den Phantomjs-Webdriver von Selen mit Pythons Unittest
Bis Sie opencv mit Python verwenden können
Verwenden Sie Python und MeCab mit Azure-Funktionen
Registrieren Sie Funktionsargumente automatisch in argparse in Python