Task:
This kata requires you to write an object that receives a file path 
and does operations on it.
NOTE FOR PYTHON USERS: You cannot use modules os.path, glob, and re
The purpose of this kata is to use string parsing, so you're not supposed to import external libraries. I could only enforce this in python.
Testing:

Python:
```python
>>> master = FileMaster('/Users/person1/Pictures/house.png')
>>> master.extension()
'png'
>>> master.filename()
'house'
>>> master.dirpath()
'/Users/person1/Pictures/'
```

Source: codewars | Difficulty: EASY
Tags: String algorithms

Fundamentals

Starter code: def __init__(self, filepath):
	

Solutions:
class FileMaster:

	def __init__(self, filepath):
		lk = filepath.rfind('.')
		ls = filepath.rfind('/')
		self.ext = filepath[lk + 1:]
		self.file = filepath[ls + 1:lk]
		self.path = filepath[:ls + 1]

	def extension(self):
		return self.ext

	def filename(self):
		return self.file

	def dirpath(self):
		return self.path


class FileMaster:

	def __init__(self, filepath):
		self.fp = filepath

	def extension(self):
		return self.fp.split('.')[-1]

	def filename(self):
		return self.fp.rsplit('/', 1)[-1].split('.')[0]

	def dirpath(self):
		return self.fp.rsplit('/', 1)[0] + '/'


class FileMaster:

	def __init__(self, filepath):
		i = len(filepath) - 1
		while filepath[i] != '.':
			i -= 1
		indexExt = i
		while filepath[i] != '/':
			i -= 1
		self.ext = filepath[indexExt + 1:]
		self.filen = filepath[i + 1:indexExt]
		self.dirp = filepath[:i + 1]

	def extension(self):
		return self.ext

	def filename(self):
		return self.filen

	def dirpath(self):
		return self.dirp


class FileMaster:

	def __init__(self, filepath):
		self.f_file = filepath.split('/')
		(self.f_name, self.extn) = self.f_file[-1].split('.')

	def extension(self):
		return self.extn

	def filename(self):
		return self.f_name

	def dirpath(self):
		return '/'.join(self.f_file[:-1]) + '/'


class FileMaster:

	def __init__(self, filepath):
		self.path = filepath
		self.dot = self.path.index('.')
		self.slash = self.path[::-1].index('/')

	def extension(self):
		return self.path[self.dot + 1:]

	def filename(self):
		return self.path[-self.slash:self.dot]

	def dirpath(self):
		return self.path[:-self.slash]


class FileMaster:

	def __init__(self, f):
		(self.path, self.ex) = f.rsplit('/', 1)
	extension = lambda self: self.ex.split('.')[1]
	filename = lambda self: self.ex.split('.')[0]
	dirpath = lambda self: self.path + '/'


class FileMaster:

	def __init__(self, filepath):
		self.filepath = filepath

	def extension(self):
		return self.filepath.rsplit('.', 1)[-1]

	def filename(self):
		return self.filepath.rsplit('/', 1)[-1].rsplit('.', 1)[0]

	def dirpath(self):
		return self.filepath[:self.filepath.rfind('/') + 1]


class FileMaster:

	def __init__(self, filepath):
		self.path = filepath
		self._start_path = filepath.split('/')[:-1]
		self._end_path = filepath.split('/')[-1].split('.')

	def extension(self):
		return self._end_path[1]

	def filename(self):
		return self._end_path[0]

	def dirpath(self):
		return '/'.join(self._start_path) + '/'


class FileMaster:

	def __init__(self, filepath):
		self.arr = filepath.split('/')

	def extension(self):
		return self.arr[-1].split('.')[1]

	def filename(self):
		return self.arr[-1].split('.')[0]

	def dirpath(self):
		self.arr[-1] = ''
		return '/'.join(self.arr)