Pythonでコマンドライン引数を取得する方法は主に3つあります。
- sys.argvを使う
- argparseを使う
- clickを使う
それぞれの方法について詳しく見ていきましょう。
sys.argvを使う
Pythonの標準ライブラリのsysを使用して引数を取得します。以下にそのコードの例を示します。
import sys
def main() -> None:
args = sys.argv
print(args)
if __name__=='__main__':
main()
このコードを実行すると、コマンドラインから与えられた引数がリストとして出力されます。
argparseを使う
argparseはコマンドライン引数専用のPython標準ライブラリです。Help機能や型の指定などができます。以下にそのコードの例を示します。
import argparse
def main() -> None:
parser = argparse.ArgumentParser(description='説明')
parser.add_argument('description', help='引数の説明')
parser.add_argument('hoge', help='hogehoge')
parser.add_argument('--foo', help='option')
args = parser.parse_args()
print(args.description)
print(args.hoge)
print(args.foo)
if __name__ == "__main__":
main()
このコードを実行すると、コマンドラインから与えられた引数がそれぞれの変数に格納され、出力されます。
clickを使う
clickはPythonのコマンドラインパーサです。Python標準ライブラリではないため別途インストールが必要ですが、わかりやすさと使いやすさで上記2つを抜いています。以下にそのコードの例を示します。
import click
@click.command()
@click.option('--args', prompt=True, help='説明')
@click.option('--hoge', prompt=True, is_flag=True, help='hogehoge')
def main(args: str, hoge: bool) -> None:
if hoge:
print(args)
if __name__ == "__main__":
main()
このコードを実行すると、コマンドラインから与えられた引数がそれぞれの変数に格納され、出力されます。
以上がPythonでコマンドライン引数を取得する主な方法です。それぞれの方法にはメリットとデメリットがありますので、用途に応じて適切な方法を選択してください。