os.path.abspath('file1.txt') doesn't return the correct path
Solution 1
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")
.
Solution 2
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)).
Bentley4
Profile with mostly old questions where I learned about programming. Thank you SO!
Updated on July 30, 2022Comments
-
Bentley4 over 1 year
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 doos.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?