Skip to content Skip to sidebar Skip to footer

Os.path.abspath('file1.txt') Doesn't Return The Correct Path

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 /hom

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

Solution 3:

You will get the path with os.path.abspath(__file__).

Solution 4:

The problem should be that previously the cwd was changed using the os.chdir(another_path) and it's still loaded in the context of the current execution. so the fix should be restore the original path after the use of the task in another_path has finish. Example :

  original_path = os.getcwd()
  os.chdir(another_path) 
  # here perform some operation over another_path
  os.chdir(original_path ) # here is the restore of the original path

Solution 5:

I was working on the same issue and I found this, hope it helps you:

os.path.join(root, f)

Post a Comment for "Os.path.abspath('file1.txt') Doesn't Return The Correct Path"