python 内置变量

vars() 查看当前文件中内置全局变量以字典方式返回内置全局变量

  • __doc__ :获取文件的注释
  • __file__ 【重点】获取当前文件的路径

所在模块:os

变量作用:指向当前文件

当前文件的完整路径:os.path.abspath(__file__)

当前文件所属目录:os.path.dirname(os.path.abspath(__file__))

当前文件所属目录的上级目录:os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

cat filelocation.py
import os
print(__file__)
print(os.path.abspath("filelocation.py"))
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)))
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
运行:
python3 filelocation.py
filelocation.py
/home/test/CodeProjects/PythonProjects/test/filelocation.py
/home/test/CodeProjects/PythonProjects/test/filelocation.py
/home/test/CodeProjects/PythonProjects/test
/home/test/CodeProjects/PythonProjects
  • sys.path

 所在模块:sys

python程序中使用import导入模块时,python解析器会在当前目录、已安装和第三方模块中搜索要导入的模块,更准确的说是从sys.path这个列表变量包含的路径中搜索的,因为sys.path是一个列表变量,所以可以使用append()和insert()函数更新列表中元素的值

cat syspath.py
import sys
print(isinstance(sys.path,list))
print(sys.path)
运行:
python3 syspath.py
True
['/home/test/CodeProjects/PythonProjects/test', '/usr/local/python36/lib/python36.zip', '/usr/local/python36/lib/python3.6', 
'/usr/local/python36/lib/python3.6/lib-dynload', '/home/test/.local/lib/python3.6/site-packages', '/usr/local/python36/lib/python3.6/site-packages']
  • __file__ ,一般配合os模块的os.path.dirname(),os.path.basename() ,os.path.join() 模块函数来使用
  • __package__ :获取导入文件的路径,多层目录以点分割,注意:对当前文件返回None
  • __cached__ :获取导入文件的缓存路径
  • __name__ :获取导入文件的路径加文件名称,路径以点分割,但是对象是导入的类名的话,只显示短类名。注意:获取当前文件返回的是__main__
  • __name__  全局变量写在入口文件里,只有执行入口文件时的返回值才是__main__ ,如果入口文件被导入到别的文件里,此时入口文件的__name__返回值为模块名称
  • __builtins__ 【重点】内置函数在这里面


原文链接:https://blog.csdn.net/henku449141932/article/details/80823654

原文地址:https://www.cnblogs.com/yoyowin/p/12168025.html