argparseの基礎
コマンドライン引数を解析します
「argparseの基礎」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
なぜargparseなのか
argparseモジュール(標準ライブラリ)は、使いやすいコマンドラインインターフェースを構築します。引数を解析し、型を検証し、ヘルプテキストを自動生成します。
import argparse
parser = argparse.ArgumentParser(description='A demo tool')
print(type(parser).__name__)パーサーの作成
まずArgumentParserを作成します。descriptionは自動生成されるヘルプに表示されます。
import argparse
parser = argparse.ArgumentParser(description='Greet a user')
print('parser ready')位置引数
add_argument('name')は必須の位置引数を定義します。ここでは実際のコマンドラインなしで実行できるよう、parse_argsにリストを渡しています。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('name')
args = parser.parse_args(['Alice'])
print('Hello,', args.name)オプション引数
--で始まる名前はオプションフラグです。ユーザーが省略した場合に使うdefaultを指定します。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--greeting', default='Hi')
args = parser.parse_args(['--greeting', 'Hey'])
print(args.greeting)
print(parser.parse_args([]).greeting)型付き引数
type=int(またはfloatなど)を使用すると、argparseが値を変換して検証します。不正な入力には明確なエラーが表示されます。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--count', type=int, default=1)
args = parser.parse_args(['--count', '5'])
print(args.count * 2)ブールフラグ
action='store_true'を指定すると、デフォルトではFalseで、指定されたときにTrueになるフラグを作成できます。--verboseのようなスイッチに最適です。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true')
print(parser.parse_args(['--verbose']).verbose)
print(parser.parse_args([]).verbose)短い名前と長い名前
-nと--nameのように、引数に短い形式と長い形式の両方を指定できます。どちらも同じ属性を設定します。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-n', '--name', default='world')
print(parser.parse_args(['-n', 'Sam']).name)選択肢
choicesを使って、使用できる値を制限します。argparseはリストにない値を拒否します。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--mode', choices=['fast', 'slow'], default='fast')
print(parser.parse_args(['--mode', 'slow']).mode)nargsによる複数の値
nargs='+'は1つ以上の値をリストにまとめます。複数の入力を一度に受け取る場合に便利です。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('files', nargs='+')
args = parser.parse_args(['a.txt', 'b.txt', 'c.txt'])
print(args.files)必須のオプションとヘルプ
required=Trueを追加するとオプションフラグを必須にでき、help=を追加すると生成される使い方画面に説明を表示できます。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--id', required=True, type=int, help='record id')
args = parser.parse_args(['--id', '7'])
print('id is', args.id)完全なミニツール
位置引数、型付きオプション、フラグを組み合わせると、小規模ながら実用的なCLIになります。
import argparse
parser = argparse.ArgumentParser(description='Repeat a message')
parser.add_argument('message')
parser.add_argument('--times', type=int, default=1)
parser.add_argument('--shout', action='store_true')
args = parser.parse_args(['hello', '--times', '2', '--shout'])
text = args.message.upper() if args.shout else args.message
for _ in range(args.times):
print(text)理解度チェック
argparseについての理解度を確認しましょう。
まとめ
argparseの基本について学びました。
- 位置引数と
--optional引数を持つArgumentParser。 type、default、choices、requiredで入力を検証します。- フラグには
action='store_true'を、リストにはnargsを使用します。 - ヘルプテキストは自動的に生成されます。
次は、サブコマンドとより柔軟なオプション処理について学びます。
よくある質問
「argparseの基礎」レッスンは無料ですか?
はい。「argparseの基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「argparseの基礎」で何を学びますか?
コマンドライン引数を解析します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「argparseの基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- argparseの基礎
- サブコマンドとオプション
- Clickライブラリ
- リッチなターミナル出力