如果每天给别人一块钱,只要有一天不给了,他就会骂你;相反,每天都打他,只要有一天不打,他就会说你好。
上一篇:python3获取当前设备的操作系统
一、文件模式
test.py
文件内容如下:
import os
print(__file__) # 获取当前文件的相对路径
print(os.path.dirname(__file__)) # 获取当前文件所在目录的相对路径
print(os.path.abspath(__file__)) # 获取当前文件的绝对路径
print(os.path.dirname(os.path.abspath(__file__))) # 获取当前文件的所在目录的绝对路径
1、进入到运行文件目录(E:\computer
)执行:python test.py
命令行执行结果如下:
test.py
# 获取所在目录的相对路径为空
E:\computer\test.py
E:\computer
2、进入到运行文件目录的上一级目录(E:\
)执行:python computer\test.py
test.py内容不变,命令行执行结果如下:
computer\test.py
computer
E:\computer\test.py
E:\computer
3、进入到其他盘符(D:\
)执行:python E:\computer\test.py
test.py内容不变,命令行执行结果如下:
E:\computer\test.py
E:\computer
E:\computer\test.py
E:\computer
4、在Pycharm中任意项目中执行:test.py
文件
test.py内容不变,Pycharm执行结果如下:
E:/computer/test.py
E:/computer
E:\computer\test.py
E:\computer
test.py
文件修改内容如下:
import os
print('__file__')
print(os.path.dirname('__file__'))
print(os.path.abspath('__file__'))
print(os.path.dirname(os.path.abspath('__file__')))
5、进入到运行文件目录(E:\computer
)执行:python test.py
命令行执行结果如下:
__file__
# 获取所在目录的相对路径为空
E:\computer\__file__
E:\computer
6、进入到运行文件目录的上一级目录(E:\
)执行:python computer\test.py
test.py内容不变,命令行执行结果如下:
__file__
# 获取所在目录的相对路径为空
E:\__file__
E:\
7、进入到其他盘符(D:\
)执行:python E:\computer\test.py
test.py内容不变,命令行执行结果如下:
__file__
# 获取所在目录的相对路径为空
D:\__file__
D:\
8、在Pycharm中任意项目中执行:test.py
文件
test.py内容不变,Pycharm执行结果如下:
__file__
# 获取所在目录的相对路径为空
E:\computer\__file__
E:\computer
二、交互模式
>>> import os
>>> print(__file__)
Traceback (most recent call last):
File "", line 1, in
NameError: name '__file__' is not defined
>>> print(os.path.dirname(__file__))
Traceback (most recent call last):
File "", line 1, in
NameError: name '__file__' is not defined
>>> print(os.path.abspath(__file__))
Traceback (most recent call last):
File "", line 1, in
NameError: name '__file__' is not defined
>>> print(os.path.dirname(os.path.abspath(__file__)))
Traceback (most recent call last):
File "", line 1, in
NameError: name '__file__' is not defined
在交互模式下,只要使用了__file__
就会报错,原理还不知道,有知道的大佬,可以留言评论。
但是随便传一个字符串就不一样了,原理也不知道,有知道的大佬,可以留言评论。
>>> import os
>>> print('__file__')
__file__
>>> print(os.path.dirname('__file__'))
# 获取所在目录的相对路径为空
>>> print(os.path.abspath('__file__'))
E:\python\Video\__file__
>>> print(os.path.dirname(os.path.abspath('__file__')))
E:\python\Video # 获取在某个文件夹下打开Python交互模式的目录绝对路径
__file__
也可以用来查看库或者模块的路径
import os
print(os.__file__)
以上结果会显示os模块的路径,但是不一定所有的模块都有__file__
属性。
综上,使用__file__
不可以加引号,加引号就使其失去了原本的意义。
如果感觉本文对您有帮助可以点个赞哦
本文为学习笔记,转载请标明出处
本文仅供交流学习,请勿用于非法途径
仅是个人意见,如有想法,欢迎留言