コマンドライン引数とは
コマンドライン引数とは、プログラムを実行する際にコマンドラインからプログラムに渡される値のことを指します。これらの引数は、プログラムが実行されるときにその動作をカスタマイズするために使用されます。
例えば、Pythonスクリプトを実行する際に以下のように引数を渡すことができます。
python script.py arg1 arg2
この場合、arg1
とarg2
がコマンドライン引数となります。これらの引数は、スクリプト内で取得して利用することができます。
Pythonでは、sys
モジュールのargv
を使用してコマンドライン引数を取得することが一般的です。また、より高度な引数のパースにはargparse
モジュールを使用することが推奨されています。これらの詳細については、次のセクションで説明します。
ファイルの読み込みと引数の渡し方
Pythonでは、ファイルの読み込みは非常に簡単に行うことができます。基本的なファイルの読み込みは以下のように行います。
with open('filename.txt', 'r') as f:
content = f.read()
このコードは、filename.txt
という名前のファイルを読み込み、その内容をcontent
という変数に格納します。
さて、このファイル名をコマンドライン引数として渡す場合はどうすればよいでしょうか。それは非常に簡単で、先ほど説明したsys.argv
を使用します。
import sys
filename = sys.argv[1]
with open(filename, 'r') as f:
content = f.read()
このコードは、コマンドライン引数として渡されたファイル名を読み込み、その内容をcontent
という変数に格納します。コマンドラインからは以下のように実行します。
python script.py filename.txt
このように、Pythonではコマンドライン引数とファイルの読み込みを組み合わせて、柔軟なプログラムを作成することができます。次のセクションでは、より高度な引数の取得方法について説明します。
sys.argvを使用したコマンドライン引数の取得方法
Pythonのsys
モジュールのargv
は、コマンドライン引数を取得するための基本的な方法を提供します。argv
はリストとして引数を保持し、スクリプト名が最初の要素として格納されます。その後、コマンドラインから渡された引数が順番に格納されます。
以下に、sys.argv
を使用した基本的なコードを示します。
import sys
print('Script name:', sys.argv[0])
print('First argument:', sys.argv[1])
print('Second argument:', sys.argv[2])
このスクリプトをpython script.py arg1 arg2
というコマンドで実行すると、以下のような出力が得られます。
Script name: script.py
First argument: arg1
Second argument: arg2
このように、sys.argv
を使用すると、コマンドラインから任意の数の引数を簡単に取得することができます。ただし、sys.argv
は引数の型や形式をチェックしないため、不正な引数が渡された場合のエラーハンドリングを自分で行う必要があります。
次のセクションでは、より高度な引数の取得とエラーハンドリングを行うargparse
モジュールについて説明します。
argparseを使用したコマンドライン引数の取得方法
Pythonのargparse
モジュールは、コマンドライン引数の取得とパースをより簡単に行うためのツールを提供します。argparse
を使用すると、引数の型や形式をチェックし、ヘルプメッセージを自動的に生成することができます。
以下に、argparse
を使用した基本的なコードを示します。
import argparse
parser = argparse.ArgumentParser(description='This is a demo script.')
parser.add_argument('filename', type=str, help='The file to read.')
args = parser.parse_args()
with open(args.filename, 'r') as f:
content = f.read()
このスクリプトは、コマンドライン引数として渡されたファイル名を読み込み、その内容をcontent
という変数に格納します。コマンドラインからは以下のように実行します。
python script.py filename.txt
argparse
を使用すると、引数の型や必須性を指定することができ、不正な引数が渡された場合にエラーメッセージを自動的に表示します。また、-h
または--help
オプションを使用すると、スクリプトの説明と各引数のヘルプメッセージを表示することができます。
このように、argparse
モジュールは、コマンドライン引数の取得とパースをより効率的に行うための強力なツールです。