Web からファイルをダウンロードし、何らかの処理を実行し、データを mysql db に保存するスクリプトを作成しています。
私はargparse
引数を受け入れるために使用しています。基本的に、スクリプトは次の 4 つのうちの 1 つを実行します。
1) ユーザーが指定したファイル名を Web からダウンロードし、処理/db-insert を実行します。
2) 昨日の日付に基づいて最新のファイル名をダウンロードします。毎晩午前 2 時以降にこの部分を実行する cron ジョブがあります。
3) #2 と同じことを行いますが、ファイルを追加します。
4) 現在のフォルダー内のユーザー定義ファイルを処理し、同じフォルダー内の出力ファイルに保存します。
このスクリプトは、上記の 4 つのことのうち 1 つしか実行できません。そのため、次のように相互に排他的なオプションの引数を使用できると考えていました。
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('-f','--filename',action='store',nargs=1,help='Filename to download')
group.add_argument('-b','--bulkfile',action='store',nargs=2,help='Bulk filename to process and save')
group.add_argument('-l', '--load', action='store_true', help='Download current load data')
group.add_argument('-s', '--supply', action='store_true', help='Download current supply data')
args = parser.parse_args()
if args.filename:
do something
elif args.bulkfile:
do something
elif args.load:
do something
elif args.supply:
do something
else:
print "Improper usage. Can only use [-f | -b | -l| -s]"
return
これが理想的ではないことはわかっています。私はむしろargparse
それの使用部分に対処したいと思います。私は自分の目的を達成するための最適な方法を探しています。助けてくれてありがとう。