Elegant way to take basename of directory in Python?

Posted by user248237 on Stack Overflow See other posts from Stack Overflow or by user248237
Published on 2010-04-18T18:56:48Z Indexed on 2010/04/18 19:03 UTC
Read the original article Hit count: 389

I have several scripts that take as input a directory name, and my program creates files in those directories. Sometimes I want to take the basename of a directory given to the program and use it to make various files in the directory. For example,

# directory name given by user via command-line
output_dir = "..." # obtained by OptParser, for example
my_filename = output_dir + '/' + os.path.basename(output_dir) + '.my_program_output'
# write stuff to my_filename

The problem is that if the user gives a directory name with a trailing slash, then os.path.basename will return the empty string, which is not what I want. What is the most elegant way to deal with these slash/trailing slash issues in python? I know I can manually check for the slash at the end of output_dir and remove it if it's there, but there seems like there should be a better way. Is there?

Also, is it OK to manually add '/' characters? E.g. output_dir + '/' os.path.basename() or is there a more generic way to build up paths?

Thanks.

© Stack Overflow or respective owner

Related posts about python

Related posts about file-io