teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

追記

2017/10/09 05:56

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -108,6 +108,7 @@
108
108
  ```
109
109
 
110
110
  集合形式で引数を与えた方が綺麗そうですね。なんかいい方法あるのかな...
111
+ **↓ ありました**
111
112
 
112
113
  さらに追記
113
114
  ---

5

追記

2017/10/09 05:56

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -138,4 +138,9 @@
138
138
  >python hoge.py -s r
139
139
  save rgb
140
140
  """
141
+ ```
142
+
143
+ こういう風にすれば、『全部保存』という指定も出来ます。...1文字しか減ってませんが。
144
+ ```Python
145
+ parser.add_argument('-s', '--save_set', type=(lambda s: 'rgtc' if s == 'all' else s), default='')
141
146
  ```

4

追記

2017/10/09 05:56

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -107,4 +107,35 @@
107
107
  """
108
108
  ```
109
109
 
110
- 集合形式で引数を与えた方が綺麗そうですね。なんかいい方法あるのかな...
110
+ 集合形式で引数を与えた方が綺麗そうですね。なんかいい方法あるのかな...
111
+
112
+ さらに追記
113
+ ---
114
+ こいつでどうだ。
115
+ ```Python
116
+ import argparse
117
+
118
+ parser = argparse.ArgumentParser()
119
+ parser.add_argument('-s', '--save_set', default={})
120
+ args = parser.parse_args()
121
+
122
+ if 'r' in args.save_set:
123
+ print('save rgb')
124
+ if 'g' in args.save_set:
125
+ print('save gray')
126
+ if 't' in args.save_set:
127
+ print('save thresh')
128
+ if 'c' in args.save_set:
129
+ print('save contours')
130
+
131
+ """実行例
132
+ >python hoge.py -s rc
133
+ save rgb
134
+ save contours
135
+
136
+ >python hoge.py
137
+
138
+ >python hoge.py -s r
139
+ save rgb
140
+ """
141
+ ```

3

追記

2017/10/09 05:53

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -44,7 +44,6 @@
44
44
  """
45
45
  ```
46
46
 
47
- ---
48
47
  ついでに、画像保存時のフォーマットも指定できるようにしてみたり。
49
48
  ```Python
50
49
  import argparse
@@ -68,4 +67,44 @@
68
67
  ./result
69
68
  png
70
69
  """
71
- ```
70
+ ```
71
+
72
+ 追記
73
+ ---
74
+ かなり愚直な方法ではありますが、一個一個オプションを作るのが簡単でしょう。
75
+ ```Python
76
+ import argparse
77
+
78
+ parser = argparse.ArgumentParser()
79
+ parser.add_argument('--s_rgb', action='store_true')
80
+ parser.add_argument('--s_gray', action='store_true')
81
+ parser.add_argument('--s_thresh', action='store_true')
82
+ parser.add_argument('--s_contours', action='store_true')
83
+ parser.add_argument('--s_all', action='store_true')
84
+ args = parser.parse_args()
85
+
86
+ if args.s_all or args.s_rgb:
87
+ print('save rgb')
88
+ if args.s_all or args.s_gray:
89
+ print('save gray')
90
+ if args.s_all or args.s_thresh:
91
+ print('save thresh')
92
+ if args.s_all or args.s_contours:
93
+ print('save contours')
94
+
95
+ """実行例
96
+ >python hoge.py
97
+
98
+ >python hoge.py --s_all
99
+ save rgb
100
+ save gray
101
+ save thresh
102
+ save contours
103
+
104
+ >python hoge.py --s_rgb --s_contours
105
+ save rgb
106
+ save contours
107
+ """
108
+ ```
109
+
110
+ 集合形式で引数を与えた方が綺麗そうですね。なんかいい方法あるのかな...

2

追記

2017/10/09 05:38

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -42,4 +42,30 @@
42
42
  >python hoge.py --save "./result"
43
43
  ./result
44
44
  """
45
+ ```
46
+
47
+ ---
48
+ ついでに、画像保存時のフォーマットも指定できるようにしてみたり。
49
+ ```Python
50
+ import argparse
51
+
52
+ parser = argparse.ArgumentParser()
53
+ parser.add_argument('-s', '--save', nargs='?', const='./image')
54
+ parser.add_argument('-f', '--format', default='jpg')
55
+ args = parser.parse_args()
56
+
57
+ if args.save:
58
+ print(args.save)
59
+
60
+ print(args.format)
61
+
62
+ """実行例
63
+ >python hoge.py --save "./result"
64
+ ./result
65
+ jpg
66
+
67
+ >python hoge.py --save "./result" --format png
68
+ ./result
69
+ png
70
+ """
45
71
  ```

1

追記

2017/10/09 04:16

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -17,4 +17,29 @@
17
17
  ・ 保存するかどうか(y/n)入力を求める
18
18
  ・ オプションをコマンドラインで設定できるようにする
19
19
 
20
- 上にいくほど簡単/愚直で、下にいくほど柔軟/面倒な設計です。
20
+ 上にいくほど簡単/愚直で、下にいくほど柔軟/面倒な設計です。
21
+
22
+ ---
23
+ 一応、コマンドライン引数のサンプルを置いておきます。
24
+ ```Python
25
+ # hoge.py
26
+
27
+ import argparse
28
+
29
+ parser = argparse.ArgumentParser()
30
+ parser.add_argument('-s', '--save', nargs='?', const='./image')
31
+ args = parser.parse_args()
32
+
33
+ if args.save:
34
+ print(args.save)
35
+
36
+ """実行例
37
+ >python hoge.py
38
+
39
+ >python hoge.py --save
40
+ ./image
41
+
42
+ >python hoge.py --save "./result"
43
+ ./result
44
+ """
45
+ ```