SF.net SVN: fclient: [64] trunk/fclient/fclient_lib/pyex/namespace.py
Status: Pre-Alpha
Brought to you by:
jurner
From: <jU...@us...> - 2007-11-10 11:27:06
|
Revision: 64 http://fclient.svn.sourceforge.net/fclient/?rev=64&view=rev Author: jUrner Date: 2007-11-10 03:27:11 -0800 (Sat, 10 Nov 2007) Log Message: ----------- added new function Modified Paths: -------------- trunk/fclient/fclient_lib/pyex/namespace.py Modified: trunk/fclient/fclient_lib/pyex/namespace.py =================================================================== --- trunk/fclient/fclient_lib/pyex/namespace.py 2007-11-10 11:26:10 UTC (rev 63) +++ trunk/fclient/fclient_lib/pyex/namespace.py 2007-11-10 11:27:11 UTC (rev 64) @@ -99,13 +99,48 @@ #********************************************************************* # #********************************************************************* +def split_extensions(fpath): + """Splits all extensions from a filepath + @param fpath: filepath to split extensions from + @return: (tuple) filepath, [extension1, extension(N) ...] + + >>> split_extensions('foo.aaa.bbb') + ('foo', ['.aaa', '.bbb']) + + >>> split_extensions('foo') + ('foo', []) + + >>> split_extensions('.foo.aaa') + ('.foo', ['.aaa']) + + >>> split_extensions('') + ('', []) + + """ + directory, name = os.path.split(fpath) + tmp_name = name + exts = [] + while True: + tmp_name, ext = os.path.splitext(tmp_name) + if not tmp_name: + name = ext + break + if not ext: + name = tmp_name + break + exts.append(ext) + + exts.reverse() + return os.path.join(directory, name), exts + +#********************************************************************* +# +#********************************************************************* + if __name__ == '__main__': import doctest doctest.testmod() -#TODO: handle fpath='myFolder/foo (1).txt' ? -#a = 'foo (123)' -#p = re.compile('\A(.*)\(([0-9]+)\)\Z') @@ -113,3 +148,4 @@ + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |