Say the path of the file 'file1.txt' is /home/bentley4/Desktop/sc/file1.txt
Say my current working directory is /home/bentley4
import os
os.path.abspath('file1.txt')
returns /home/bentley4/file1.txt
os.path.exists('file1.txt')
returns False
.
If I do
os.path.abspath('file_that_does_not_exist.txt')
It returns /home/bentley4/file_that_does_not_exist.txt
But again, this is not correct. The file does not even exist on my computer. Is there a way to get the correct absolute path from any directory I am currently working in? (aside from defining a new function)
So this only works when I am in the same directory as the existing file or in the directory one directory or more further from the path of the directory of that file?
path. expanduser() method in Python is used to expand an initial path component ~( tilde symbol) or ~user in the given path to user's home directory. On Unix platforms, an initial ~ is replaced by the value of HOME environment variable, if it is set.
os.path. abspath (path) Return a normalized absolutized version of the pathname path. On most platforms, this is equivalent to calling the function normpath() as follows: normpath(join(os.getcwd(), path)) .
path. dirname() method in Python is used to get the directory name from the specified path.
os. path. realpath(path) (returns "the canonical path of the specified filename, eliminating any symbolic links encountered in the path") os.
os.path.abspath(filename)
returns an absolute path as seen from your current working directory. It does no checking whether the file actually exists.
If you want the absolute path of /home/bentley4/Desktop/sc/file1.txt
and you are in /home/bentley4
you will have to use os.path.abspath("Desktop/sc/file1.txt")
.
abspath just builds a path, it doesn't check anything about files existing.
From the docs:
On most platforms, this is equivalent to normpath(join(os.getcwd(), path)).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With