Pythonのargparse
モジュールは、ユーザーフレンドリーなコマンドラインインターフェースの作成を簡単にします。プログラムは必要とする引数が何かを定義し、argparse
はsys.argv
からそれらの引数を解析する方法を見つけ出します。
一方、glob
モジュールは、ワイルドカードを含むパス名を指定して、そのパス名にマッチする全てのパス名を取得することができます。
以下に、argparse
とglob
を組み合わせて使用する一例を示します。
import argparse, glob, sys
parser = argparse.ArgumentParser()
parser.add_argument("src_path", metavar="path", type=str, help="Path to files to be merged; enclose in quotes, accepts * as wildcard for directories or filenames")
args = parser.parse_args()
files = glob.glob(args.src_path)
for file in files:
try:
with open(file, 'r') as f:
print('File exists: ' + file)
except IOError:
sys.stderr.write('File does not exist: ' + file + '\\n')
このコードは、コマンドライン引数で指定されたパス(ワイルドカードを含むことが可能)に存在する全てのファイルを開き、そのファイル名を出力します。ファイルが存在しない場合は、エラーメッセージを出力します。
このように、argparse
とglob
を組み合わせることで、柔軟なファイル操作を行うスクリプトを作成することができます。