If you wanted to rename a file or change its extension by using Python, usually you would do something like:

import os

old_f_name = 'a_dir/my_file.ext'
new_f_name = 'a_dir/my_new_file_name.ext'

new_file = os.rename(old_f_name, new_f_name)


But, if there is no file a_dir/my_file.ext, then you will get the error: FileNotFoundError: [Errno 2] No such file or directory: 'a_dir/my_file.ext' -> 'a_dir/my_new_file_name.ext' 

Also, the os.rename function actually renames the file. That is, the os.rename function will rename the actually file a_dir/my_file.ext to a_dir/my_new_file_name.ext. Or, at least, will try to. This is why there is the FileNotFoundError if the file a_dir/my_file.ext does not exists.

Alternatively, you can use the pathlib library and the Path class:

from pathlib import Path

old_f_name = Path('a_dir/my_file.ext')
new_f_name = old_f_name.with_name('my_new_file_name')

new_f_name_with_new_ext = new_f_name.with_suffix('.new_ext')

print(new_f_name)
print(new_f_name_with_new_ext)