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.
|