👻 Check our latest review to choose the best laptop for Machine Learning engineers and Deep learning tasks!
import os
A = os.path.join(os.path.dirname(__file__), "..")
B = os.path.dirname(os.path.realpath(__file__))
C = os.path.abspath(os.path.dirname(__file__))
I usually just hard-wire these with the actual path. But there is a reason for these statements that determine path at runtime, and I would really like to understand the os.path
module so that I can start using it.
👻 Read also: what is the best laptop for engineering students?
os.path.dirname(__file__) returns empty
2 answers
I want to get the path of the current directory under which a .py file is executed.
For example a simple file D: est.py
with code:
import os
print os.getcwd()
print os.path.basename(__file__)
print os.path.abspath(__file__)
print os.path.dirname(__file__)
It is weird that the output is:
D:
test.py
D: est.py
EMPTY
I am expecting the same results from the getcwd()
and path.dirname()
.
Given os.path.abspath = os.path.dirname + os.path.basename
, why
os.path.dirname(__file__)
returns empty?
Answer #1
Because os.path.abspath = os.path.dirname + os.path.basename
does not hold. we rather have
os.path.dirname(filename) + os.path.basename(filename) == filename
Both dirname()
and basename()
only split the passed filename into components without taking into account the current directory. If you want to also consider the current directory, you have to do so explicitly.
To get the dirname of the absolute path, use
os.path.dirname(os.path.abspath(__file__))
What is the difference between os.path.basename() and os.path.dirname()?
2 answers
What is the difference between os.path.basename()
and os.path.dirname()
?
I already searched for answers and read some links, but didn"t understand. Can anyone give a simple explanation?
Answer #1
Both functions use the os.path.split(path)
function to split the pathname path
into a pair; (head, tail)
.
The os.path.dirname(path)
function returns the head of the path.
E.g.: The dirname of "/foo/bar/item"
is "/foo/bar"
.
The os.path.basename(path)
function returns the tail of the path.
E.g.: The basename of "/foo/bar/item"
returns "item"
From: http://docs.python.org/3/library/os.path.html#os.path.basename
We hope this article has helped you to resolve the problem. Apart from what does the __file__ variable mean/do?, check other code Python module-related topics.
Want to excel in Python? See our review of the best Python online courses 2023. If you are interested in Data Science, check also how to learn programming in R.
By the way, this material is also available in other languages:
- Italiano what does the __file__ variable mean/do?
- Deutsch what does the __file__ variable mean/do?
- Français what does the __file__ variable mean/do?
- Español what does the __file__ variable mean/do?
- Türk what does the __file__ variable mean/do?
- Русский what does the __file__ variable mean/do?
- Português what does the __file__ variable mean/do?
- Polski what does the __file__ variable mean/do?
- Nederlandse what does the __file__ variable mean/do?
- 中文 what does the __file__ variable mean/do?
- 한국어 what does the __file__ variable mean/do?
- 日本語 what does the __file__ variable mean/do?
- हिन्दी what does the __file__ variable mean/do?
Paris | 2023-04-01
Thanks for explaining! I was stuck with what does the __file__ variable mean/do? for some hours, finally got it done 🤗. Checked yesterday, it works!
Prague | 2023-04-01
time Python module is always a bit confusing 😭 what does the __file__ variable mean/do? is not the only problem I encountered. I am just not quite sure it is the best method
Rome | 2023-04-01
Maybe there are another answers? What what does the __file__ variable mean/do? exactly means?. I just hope that will not emerge anymore