In [1]:
import os

In [2]:
filepath = './dir/subdir/filename.ext'

In [3]:
print(os.sep)


/

In [4]:
print(os.sep is os.path.sep)


True

In [5]:
basename = os.path.basename(filepath)
print(basename)


filename.ext

In [6]:
print(type(basename))


<class 'str'>

In [7]:
basename_without_ext = os.path.splitext(os.path.basename(filepath))[0]
print(basename_without_ext)


filename

In [8]:
filepath_tar_gz = './dir/subdir/filename.tar.gz'

In [9]:
print(os.path.splitext(os.path.basename(filepath_tar_gz))[0])


filename.tar

In [10]:
print(os.path.basename(filepath_tar_gz).split('.', 1)[0])


filename

In [11]:
dirname = os.path.dirname(filepath)
print(dirname)


./dir/subdir

In [12]:
print(type(dirname))


<class 'str'>

In [13]:
subdirname = os.path.basename(os.path.dirname(filepath))
print(subdirname)


subdir

In [14]:
base_dir_pair = os.path.split(filepath)
print(base_dir_pair)


('./dir/subdir', 'filename.ext')

In [15]:
print(type(base_dir_pair))


<class 'tuple'>

In [16]:
print(os.path.split(filepath)[0] == os.path.dirname(filepath))


True

In [17]:
print(os.path.split(filepath)[1] == os.path.basename(filepath))


True

In [18]:
dirname, basename = os.path.split(filepath)
print(dirname)


./dir/subdir

In [19]:
print(basename)


filename.ext

In [20]:
dirpath_without_sep = './dir/subdir'
print(os.path.split(dirpath_without_sep))


('./dir', 'subdir')

In [21]:
print(os.path.basename(dirpath_without_sep))


subdir

In [22]:
dirpath_with_sep = './dir/subdir/'
print(os.path.split(dirpath_with_sep))


('./dir/subdir', '')

In [23]:
print(os.path.basename(os.path.dirname(dirpath_with_sep)))


subdir

In [24]:
root_ext_pair = os.path.splitext(filepath)
print(root_ext_pair)


('./dir/subdir/filename', '.ext')

In [25]:
print(type(root_ext_pair))


<class 'tuple'>

In [26]:
root, ext = os.path.splitext(filepath)
print(root)


./dir/subdir/filename

In [27]:
print(ext)


.ext

In [28]:
path = root + ext
print(path)


./dir/subdir/filename.ext

In [29]:
other_ext_filepath = os.path.splitext(filepath)[0] + '.jpg'
print(other_ext_filepath)


./dir/subdir/filename.jpg

In [30]:
ext_without_dot = os.path.splitext(filepath)[1][1:]
print(ext_without_dot)


ext

In [31]:
print(os.path.splitext(filepath_tar_gz))


('./dir/subdir/filename.tar', '.gz')

In [32]:
print(filepath_tar_gz.split('.', 1))


['', '/dir/subdir/filename.tar.gz']

In [33]:
dirname, basename = os.path.split(filepath_tar_gz)
basename_without_ext, ext = basename.split('.', 1)
path_without_ext = os.path.join(dirname, basename_without_ext)
print(path_without_ext)


./dir/subdir/filename

In [34]:
print(ext)


tar.gz

In [35]:
ext_with_dot = '.' + ext
print(ext_with_dot)


.tar.gz

In [36]:
path = os.path.join('dir', 'subdir', 'filename.ext')
print(path)


dir/subdir/filename.ext

In [37]:
other_filepath = os.path.join(os.path.dirname(filepath), 'other_file.ext')
print(other_filepath)


./dir/subdir/other_file.ext