ereOn ereOn - 17 days ago 5
Python Question

How to replace (or strip) an extension from a filename in Python?

Is there a built-in function in Python that would replace (or remove, whatever) the extension of a filename (if it has one) ?

Example:

print replace_extension('/home/user/somefile.txt', '.jpg')


In my example:
/home/user/somefile.txt
would become
/home/user/somefile.jpg


I don't know if it matters, but I need this for a SCons module I'm writing. (So perhaps there is some SCons specific function I can use ?)

I'd like something clean. Doing a simple string replacement of all occurrences of
.txt
within the string is obviously not clean. (This would fail if my filename is
somefile.txt.txt.txt
)

Answer

Try os.path.splitext it should do what you want.

import os
print os.path.splitext('/home/user/somefile.txt')[0]+'.jpg'
Comments