def win_path_to_unix(path, root_prefix=u''):
 path_re = u'(?<![:/^a-zA-Z])([a-zA-Z]:[\\/\\\\]+(?:[^:*?"<>|]+[\\/\\\\]+)*[^:*?"<>|;\\/\\\\]+?(?![a-zA-Z]:))'
 def _translation(found_path):
  found = found_path.group(1).replace(u'\\', u'/').replace(u':', u'').replace(u'//', u'/')
  return ((root_prefix + u'/') + found)
 path = re.sub(path_re, _translation, path).replace(u';/', u':/')
 return path

def win_path_to_unix ( path , root_prefix = u'' ) : path_re = u'(?<![:/^a-zA-Z])([a-zA-Z]:[\\/\\\\]+(?:[^:*?"<>|]+[\\/\\\\]+)*[^:*?"<>|;\\/\\\\]+?(?![a-zA-Z]:))' def _translation ( found_path ) : found = found_path . group ( 1 ) . replace ( u'\\' , u'/' ) . replace ( u':' , u'' ) . replace ( u'//' , u'/' ) return ( ( root_prefix + u'/' ) + found ) path = re . sub ( path_re , _translation , path ) . replace ( u';/' , u':/' ) return path
convert a path or ;-separated string of paths into a unix representation does not add cygdrive .