Python中getopt返回的数据类型是什么
我在代码中使用了以下Python中getopt返回的数据类型是什么,python,command-line-arguments,jython,Python,Command Line Arguments,Jython,我在代码中使用了以下getopt: opts, args = getopt.getopt(sys.argv[1:], "", ["admit=", "wardName="]) 然后,我从命令行运行以下代码: Test.py --args --admit=1 --wardName="CCU" 当我打印选项的内容时,我得到以下输出: [('--admit', '1'), ('--wardName', 'CCU')] 第一个问题是该结果的数据类型是什么?在我看来,这就像一个元组列表。对吗 第二个
getopt
:
opts, args = getopt.getopt(sys.argv[1:], "", ["admit=", "wardName="])
然后,我从命令行运行以下代码:
Test.py --args --admit=1 --wardName="CCU"
当我打印选项的内容时,我得到以下输出:
[('--admit', '1'), ('--wardName', 'CCU')]
第一个问题是该结果的数据类型是什么?在我看来,这就像一个元组列表。对吗
第二个问题-是否有任何方便的方法来处理此类元组对(如果这些是元组)?例如,我现在怎么说:如果承认==1,那么做X?
我想把元组转换成字典,但这是一个好的做法吗
p.S.这不应该有任何区别,这实际上是Jython,而不是纯Python。Python文档的首页将Python库文档描述为“把它放在枕头下”。getopt上的页面位于:
从getopt返回两个列表:您提到的元组列表,然后是解析完所有选项后剩余参数的列表。试试这个:
import getopt
args = ['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']
opts, args = getopt.getopt(args, "abc:d")
print ("opts=" + str(opts))
print ("args=" + str(args))
optdic = dict(opts) # convert options to dictionary
print ("optdic['-c'] = " + str(optdic['-c']))
输出:
是的,这是一个元宝树的列表。您可以使用type()
进行检查
一本字典就行了
D = dict(opts)
print D['--admit']
print D['--wardName']
使用选项和值的便捷方式:
import getopt, sys
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "", ["admit=", "wardName="])
print opts
except getopt.GetoptError, err:
# print help information and exit:
print str(err)
sys.exit(2)
admitArg = False
wardName = ""
for o, a in opts:
if o == "--admit":
admitArg = a
elif o == "--wardName":
wardName = a
else:
assert False, "unhandled option"
# do something with the argument values
if admitArg:
print "--admit is True"
if wardName == "Foobar":
print "wardName is Foobar!"
if __name__ == "__main__":
main()
import getopt, sys
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "", ["admit=", "wardName="])
print opts
except getopt.GetoptError, err:
# print help information and exit:
print str(err)
sys.exit(2)
admitArg = False
wardName = ""
for o, a in opts:
if o == "--admit":
admitArg = a
elif o == "--wardName":
wardName = a
else:
assert False, "unhandled option"
# do something with the argument values
if admitArg:
print "--admit is True"
if wardName == "Foobar":
print "wardName is Foobar!"
if __name__ == "__main__":
main()