, когда я принимаю аргументы, как я могу проверить, если два появляются в то же время без соединения условногопитон - sys.argv и флаг идентификации
т.е.
#!/usr/bin/python
import random, string
import mymodule
import sys
z = ' '.join(sys.argv[2:])
q = ''.join(sys.argv[3:])
a = ''.join(sys.argv[2:])
s = ' '.join(sys.argv[1:])
flags = sys.argv[1:5]
commands = [["-r", "reverse string passed next with no quotes needed."], ["-j", "joins arguments passed into string. no quotes needed."], ["--palindrome", "tests whether arguments passed are palindrome or not. collective."],["--rand","passes random string of 10 digits/letters"]]
try:
if "-r" in flags:
if "-j" in flags:
print mymodule.reverse(q)
if not "-j" in flags:
print mymodule.reverse(z)
if "-j" in flags:
if not "-r" in flags:
print a
if "--palindrome" in flags: mymodule.ispalindrome(z)
if (not "-r" or not "-j" or not "--palindrome") in flags: mymodule.say(s)
if "--rand" in flags: print(''.join([random.choice(string.ascii_letters+"123456789") for f in range(10)]))
if not sys.argv[1]: print mymodule.no_arg_error
if "--help" in flags: print commands
except: print mymodule.no_arg_error
я просто хочу, чтобы иметь возможность сказать
если «-r» и «-j» флагами в произвольном порядке: делать все
Что вы подразумеваете под кратким синтаксисом? – tekknolagi
С optparse вы обычно 'add_option()' для каждой опции. С getopt вы просто пишете что-то вроде 'options, fnames = getopt (" abf: ")', и это обрабатывает '-a',' -b' и '-f filename'. – 9000
звучит отлично – tekknolagi