Misunderstanding of python os.path.abspath
os.path, path, python
Solution
The problem is with your understanding of `os.listdir()` not `os.path.abspath()`. `os.listdir()` returns the names of each of the files in the directory. This will give you:
img1.jpg
img2.jpg
...
When you pass these to `os.path.abspath()`, they are seen as relative paths. This means it is relative to the directory from where you are executing your code. This is why you get "D:\code\img1.jpg".
Instead, what you want to do is join the file names with the directory path you are listing.
os.path.abspath(os.path.join(directory, file))
Problem
I have following code: ``` directory = r'D:\images' for file in os.listdir(directory): print(os.path.abspath(file)) ``` and I want next output: - D:\images\img1.jpg - D:\images\img2.jpg and so on But I get different result: - D:\code\img1.jpg - D:\code\img2.jpg where D:\code is my current working directory and this result is the same as ``` os.path.normpath(os.path.join(os.getcwd(), file)) ``` So, the question is: What is the purpose of os.path.abspath while I must use ``` os.path.normpath(os.path.join(directory, file)) ``` to get REAL absolute path of my file? Show real use-cases if possible.