我處於死衚衕。我試圖將參數傳遞給Linux來運行某些操作。我想避免用戶輸入太多的參數。Python getopt太多爭論
例如腳本所需的運行將是這樣:
./audit.py -a
我想阻止以下內容:
./audit.py -af
這似乎運行無論是指定「一」然後'f'。在這種情況下,如果它像'-af'那麼我需要它退出sys.exit()。我LEN(sys.argv中[1:])總是產生結果1,無論我多麼參數放在
import getopts
import sys
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], 'v:adfh')
except getopt.GetoptError as err:
sys.exit(str(err))
if len(sys.argv[1:]) != 1:
sys.exit('Invalid')
for o,a in opts:
if o in ('-v', '--volume'):
print 'Volumes'
elif len(sys.argv[2:]) != 0:
sys.exit('Too many arguments')
elif o in ('-a', '--agent'):
print 'Full audit of agents only'
elif o in ('-d', '--device'):
print 'Full audit of device only'
elif o in ('-f', '--full'):
print 'Full audit of device/agents'
elif o in ('-h', '--help'):
sys.exit('Help Section')
if __name__ == '__main__':
main()
如果你想檢查指定了多少個選項,爲什麼不檢查'opts'? – user2357112
只是爲了我的理解:爲什麼你不想阻止選項的聚類? –