For example, I want to join a prefix path to resource paths like /js/foo.js.
I want the resulting path to be relative to the root of the server. In the above example if the prefix was "media" I would want the result to be /media/js/foo.js.
os.path.join does this really well, but how it joins paths is OS dependent. In this case I know I am targeting the web, not the local file system.
Is there a best alternative when you are working with paths you know will be used in URLs? Will os.path.join work well enough? Should I just roll my own?
Since, from the comments the OP posted, it seems he doesn't want to preserve "absolute URLs" in the join (which is one of the key jobs of
urlparse.urljoin;-), I'd recommend avoiding that.
os.path.join would also be bad, for exactly the same reason.
So, I'd use something like
'/'.join(s.strip('/') for s in pieces) (if the leading
/ must also be ignored -- if the leading piece must be special-cased, that's also feasible of course;-).