Leonel Gayard wrote: > Hi all, > > I had to write a small script, and I did it in python instead of > shell-script. My script takes some arguments from the command line, > like this. > > import sys > args = sys.argv[1:] > if args == []: > print """Concat: concatenates the arguments with a colon (:) between > them > Usage: concat arg1 [arg2...] > Example: concat a b c prints \"a.jar:b.jar:c/\"""" > sys.exit(1) > print reduce(lambda x, y: x + ':' + y, sys.argv[1:])
The short answer is to use textwrap.dedent:: >>> import textwrap >>> if True: ... print textwrap.dedent('''\ ... Concat: concatenates the arguments with a colon (:) between ... them ... Usage: concat arg1 [arg2...] ... Example: concat a b c prints "a.jar:b.jar:c/"''') ... Concat: concatenates the arguments with a colon (:) between them Usage: concat arg1 [arg2...] Example: concat a b c prints "a.jar:b.jar:c/" You also might consider using an argument parsing like argparse[1] to build your usage string for you: ------------------------------ concat.py ------------------------------ import argparse if __name__ == '__main__': parser = argparse.ArgumentParser( description='concatenates the arguments with a colon (:) ' 'between them') parser.add_argument('args', metavar='arg', nargs='+', help='one item to be concatenated') namespace = parser.parse_args() print ':'.join(namespace.args) ----------------------------------------------------------------------- $ concat.py usage: concat.py [-h] arg [arg ...] concat.py: error: too few arguments $ concat.py -h usage: concat.py [-h] arg [arg ...] concatenates the arguments with a colon (:) between them positional arguments: arg one item to be concatenated optional arguments: -h, --help show this help message and exit $ concat.py a b c Steve [1] http://argparse.python-hosting.com/ -- http://mail.python.org/mailman/listinfo/python-list