0Pricing
Python Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. argparseの基礎
  2. サブコマンドとオプション
  3. Clickライブラリ
  4. リッチなターミナル出力
← Python Academyに戻る