Q&A
解決済
3回答
2672閲覧
総合スコア201
Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。
Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。
0グッド
0クリップ
投稿2018/11/04 03:56
0
pythonでコマンドラインからオプションをつけて実行 みたいなことはできるのでしょうか? 例えば、
cmd1python main.py -f1
cmd
1python main.py -f1
とすれば、
hogehoge
と出力され
cmd1python main.py -f2
1python main.py -f2
fugafuga
と出力される みたいな。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
質問へのコメント
回答3件
ベストアンサー
コマンドライン引数自体はsys.argvに入っています。
sys.argv
cmd_test.py
python1import sys 2print(sys.argv)
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
総合スコア30939
argparse でコマンドライン引数を解析すればできます。
python1import 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')
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')
bash1$ python teest.py --f1 2fugafuga 3 4$ python teest.py --f2 5hogehoge
bash
1$ python teest.py --f1 2fugafuga 3 4$ python teest.py --f2 5hogehoge
投稿2018/11/04 04:03
総合スコア21962
コマンドライン引数はsys.argvに入る sys.argv 複数ある場合は sys.argv[0] sys.argv[1] 貴方がたとえた例をすると
python1import sys 2 3 4if sys.argv[1] == '-f1': 5 print('hogehoge') 6 7elif sys.argv[1] == '-f2': 8 print('fugafuga') 9
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
退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
[python]コマンドラインからオプション付きで実行みたいなのはできるか?