python获取当前文件绝对路径,python打开文件的路径
导入操作系统、系统
使用sys.path[0]、sys.argv[0]、os.getcwd()、os.path.abspath(__file__)、os.path.realpath(__file__)
sys.path是计算机编程语言会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事因为计算机编程语言会自动把sys.argv[0]加入sys.path。
如果你在C:\test目录下执行python getpath\getpath.py,那么os.getcwd()会输出" C:\test ",sys.path[0]会输出C:\test\getpath。
如果你用py2exe模块把计算机编程语言脚本编译为可执行文件,那么sys.path[0]的输出还会变化:
如果把依赖库用默认的方式打包为活力文件,那么sys.path[0]会输出" C:\ test \ getpath \ library。zip ";
如果在setup.py里面指定zipfile=无参数,依赖库就会被打包到可执行程序的扩展名文件里面,那么sys.path[0]会输出C:\test\getpath\getpath.exe。
#!/大意的航空/env python#-*- encoding=utf8 -*-
importos,sysif _ _ name _ _= _ _ main _ _ :print _ _ file _ _=% s % _ _ file _ _
打印操作系统。路径。真实路径(_ _ file _ _)=% s“% OS。路径。真实路径(_ _ file _ _)print OS。路径。dirname(OS。路径。真实路径(_ _ file _ _)=% s“% OS。路径。dirname(OS。路径。真实路径(_ _ file _ _))
打印操作系统。路径。分裂(OS。路径。真实路径(_ _ file _ _)=% s“% OS。路径。分裂(OS。路径。真实路径(_ _ file _ _)[0]print OS。路径。ABS path(_ _ file _ _)=% s“% OS。路径。ABS path(_ _ file _ _)print OS。getcwd()=% s % OS。getcwd()print sys。路径[0]=% s % sys。path[0]print sys。argv[0]=% s“% s”
输出结果:
D:\python ./python_test/test_path.py
__file__=./python_test/test_path.py
OS。路径。实路径(_ _ file _ _)=D:\ python _ test \ test _ path。巴拉圭
OS。路径。dirname(OS。路径。真实路径(_ _ file _ _)=D:\ python _ test
OS。路径。分裂(OS。路径。真实路径(_ _ file _ _)=D:\ python _ test
OS。路径。ABS路径(_ _ file _ _)=D:\ python _ test \ test _ path。巴拉圭
os.getcwd()=D:\
sys.path[0]=D:\python_test
sys.argv[0]=./python_test/test_path.py
os.getcwd() "D:\ ",取的是起始执行目录
sys.path[0]或sys.argv[0] "D:\python_test ",取的是被初始执行的脚本的所在目录
OS。路径。分裂(OS。路径。真实路径(_ _ file _ _)[0]“D:\ python _ test”,取的是__文件_ _所在文件test_path.py的所在目录
正确获取当前的路径:
__文件_ _是当前执行的文件
# 获取当前文件__文件_ _的路径
打印操作系统。路径。真实路径(_ _ file _ _)=% s“% OS。路径。真实路径(_ _ file _ _)
# 获取当前文件__文件_ _的所在目录
打印操作系统。路径。dirname(OS。路径。真实路径(_ _ file _ _)=% s“% OS。路径。dirname(OS。路径。真实路径(_ _ file _ _))
# 获取当前文件__文件_ _的所在目录
打印操作系统。路径。分裂(OS。路径。真实路径(_ _ file _ _)=% s“% OS。路径。分裂(OS。路径。真实路径(_ _ file _ _)[0]
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。