0
args管理にgetopsを使用していて、何らかの理由でmy -s変数が機能しません。私のコードは、だけでなく、以下の私はgetoptsがPythonで不思議な動作をする
try:
opts, args = getopt.getopt(sys.argv[1:], "hadsp:v", ["help", "all", "display", "single=", "present="])#, "search="])
except getopt.GetoptError as err:
print(err)
print "Exiting now, no options entered"
help()
sys.exit(2)
if len(opts) == 0:
print "No options passed"
help()
print opts
print args
for o, a in opts:
if o in ("-h", "--help"):
help()
elif o in ("-p", "--present"):
search(a)
elif o in ("-a", "--all"):
all_install()
elif o in ("-s", "--single"):
if a == '':
print "crap"
sys.exit(2)
single_install(a)
elif o in ("-d", "--display"):
display()
else:
print "Exiting now, unknown option"
help()
sys.exit(2)
を取得しています出力され、私はプログラムの実行時に出力が
[('-s', '')]
['test']
crap
です:なぜこれが起こっている
python file.py -s test
わからないが、助けてくれてありがとう。
argparseは、余分な括弧と括弧を含む2行の終わりにいくつかの嫌なものは、あります –
、簡単かつ安全に使用できます。不思議なことに、通訳は文句を言わない。 –
あなたは 'hadsp:v'の代わりに' hads:p:v'引数を使いたいと思います。 's'の後のコロンは、このスイッチが引数をとることを指定します。 –