views:

66

answers:

4

Hello,

i would like to enclose strings inside of list into <> (formatted like <%s>). The current code does the following:

def create_worker (general_logger, general_config):
    arguments = ["worker_name", "worker_module", "worker_class"]
    __check_arguments(arguments)

def __check_arguments(arguments):
    if len(sys.argv) < 2 + len(arguments):
        print "Usage: %s delete-project %s" % (__file__," ".join(arguments))
        sys.exit(10)

The current output looks like this:

Usage: ...\handler_scripts.py delete-project worker_name worker_module worker_class

and should look like this:

Usage: ...\handler_scripts.py delete-project <worker_name> <worker_module> <worker_class>

Is there any short way to do this ?

Greetings, Michael

A: 

Use a list comprehension: ['<%s>' % s for s in arguments].

jemfinch
+2  A: 

What about:

print "Usage: %s delete-project %s" % (__file__," ".join('<%s>'% arg for arg in arguments))
Olivier
Thanks, that helped alot :-).
Michael Konietzny
If it helped a lot, Michael, you should accept the answer.
jemfinch
A: 

Replace your join bit with:

' '.join('<%s>' % s for s in arguments)
Nick Presta
A: 

Replace

(__file__," ".join(arguments))

with

(__file__," ".join("<%s>" % a for a in arguments))
Mike DeSimone