"plik jest w tej samej lokalizacji co skrypt" =/= "plik jest w tej samej lokalizacji co punkt wywołania skryptu".
Wyobraź dobie takie drzewo:
Kat1
\
|-Skrypt.py
|-Plik1.txt
|-Kat2
\
|-Plik2.txt
Jeżeli jesteś w katalogu Kat1 to:
* Skrypt odpalasz albo przez ./Skrypt.py albo przez /pełna/ścieżka/do/Kat1/Skrypt.py.
* Dla skryptu Plik1.txt widziany jest jako Plik1.txt albo przez pełną ścieżkę /pełna/ścieżka/do/Kat1/Plik1.txt.
* Dla skryptu Plik2.txt widziany jest jako Kat2/Plik2.txt albo przez pełną ścieżkę /pełna/ścieżka/do/Kat1/Kat2/Plik2.txt.
Jeżeli jesteś w katalogu Kat2 to:
* Skrypt odpalasz albo przez ../Skrypt.py albo przez /pełna/ścieżka/do/Kat1/Skrypt.py.
* Dla skryptu Plik1.txt widziany jest jako ../Plik1.txt albo przez pełną ścieżkę /pełna/ścieżka/do/Kat1/Plik1.txt.
* Dla skryptu Plik2.txt widziany jest jako Plik2.txt albo przez pełną ścieżkę /pełna/ścieżka/do/Kat1/Kat2/Plik2.txt.
Czyli plik jest widziany względem katalogu z którego uruchamiasz skrypt (cwd - current working directory) a nie względem katalogu, w którym jest skrypt. Oczywiście przy założeniu, że skrypt nie zmienia CWD w trakcie pracy.
A co do dat:
* Datę modyfikacji pliku wyciągasz przez datetime.fromtimestamp(os.path.getmtime(PLIK))
* Bieżącą datę przez datetime.now()
* Różnicę masz przez zwykłe odejmowanie, wynik jest typu timedelta, typ ten ma metodę days zwracającą to, czego potrzebujesz.