pythonでコマンドラインからオプションをつけて実行 みたいなことはできるのでしょうか?
例えば、
cmd
1python main.py -f1
とすれば、
hogehoge
と出力され
cmd
1python main.py -f2
とすれば、
fugafuga
と出力される みたいな。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
コマンドライン引数自体はsys.argv
に入っています。
cmd_test.py
python
1import sys 2print(sys.argv)
$ python cmd_test.py -f1 ['cmd_test.py', '-f1'] $ python cmd_test.py -f2 ['cmd_test.py', '-f2']
なのでsys.argv
を見て内容によってif文等で分岐する、というのが一番単純なやり方です。
argparseなどのモジュールを使うと、自動的に高機能なパーサを作ってくれるので、実際にはそちらを使ったほうがメリットがあります。
投稿2018/11/04 06:12
編集2018/11/04 06:27総合スコア30939
0
argparse でコマンドライン引数を解析すればできます。
python
1import argparse 2 3if __name__ == '__main__': 4 parser = argparse.ArgumentParser(description='Sample') 5 parser.add_argument('--f1', action='store_false') 6 parser.add_argument('--f2', action='store_false') 7 args = parser.parse_args() 8 9 if args.f1: 10 print('hogehoge') 11 elif args.f2: 12 print('fugafuga')
bash
1$ python teest.py --f1 2fugafuga 3 4$ python teest.py --f2 5hogehoge
投稿2018/11/04 04:03
総合スコア21960
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
コマンドライン引数はsys.argvに入る
sys.argv
複数ある場合は
sys.argv[0]
sys.argv[1]
貴方がたとえた例をすると
python
1import sys 2 3 4if sys.argv[1] == '-f1': 5 print('hogehoge') 6 7elif sys.argv[1] == '-f2': 8 print('fugafuga') 9
とすればできます
sys.argv[1]
としている理由は、sys.argv[0]は
ファイル名になるからです
投稿2018/11/04 06:58
編集2018/11/04 07:00
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。