I have a list which contains a folder structure, for instance:
dirs=['c:\', 'temp', 'foo', 'bar']
The length of the list can vary. I'd like to be able to construct a
os.path.join on the list, but as the list can vary in length I'm unsure how
to do this neatly.
Sounds like you want argument unpacking:
>>> dirs=['c:\\', 'temp', 'foo', 'bar']
>>> print os.path.join(*dirs)
c:\temp\foo\bar
(side note: you can't have a single trailing backslash like your
example assignment)
The asterisk instructs python to unpack the passed list as if
each one was a positional argument. You may occasionally see
function definitions of the same form:
def foo(*args):
for arg in args:
print arg
foo('hello')
foo('hello', 'world')
lst = ['hello', 'world']
foo(*lst)
You can use "**" for dictionary/keyword arguments as well. Much
more to be read at [1].
-tkc
[1]
http://www.network-theory.co.uk/docs/pytut/KeywordArguments.html
--
http://mail.python.org/mailman/listinfo/python-list