"
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.