您的位置:首页 > 其它

绝对和相对路径的区别

2016-02-26 00:07 323 查看
一:

相对路径是相对脚本文件来的。

比如脚本在C:/python目录下,相同目录下有一个文件叫test.txt

那么绝对路径就是 C:/python/test.txt,相对路径就是test.txt

import os
path = os.getcwd() #获取当前工作目录,即当前python脚本工作的目录绝对路径
print(path)
输出  '''/Users/Alan/Desktop/AlanProject/day5'''
path_a = os.path.dirname(os.path.abspath(__file__))
#获取当前工作目录,即当前python脚本工作的目录绝对路径
print (path_a)
输出  '''/Users/Alan/Desktop/AlanProject/day5'''
print(__file__)
输出  '''绝对和相对路径.py''' #得出绝对路径


二:

两个版本的差异

python2缺省为相对路径导入,python3缺省为绝对路径导入

python2绝对路径导入
from __future__ import absolute_import


如果需要保持python2与python3皆可用,避免出现
try:
from pets.cat import xxx
except:
from cat import xxx

则需要使用相对路径导入,即
from .cat import xxx


python2缺省会搜索上一级目录、上上级目录

其他重点

包之所以为包,取决于是否有__init__.py文件

相对路径导入仅用于包内,同一个顶级包内

当前目录:


play$ python main.py
play为当前目录

play$ python test/main.py
play/test为当前目录

play$ python -m test.main
play为当前目录



出现
SystemError: Parent module '' not loaded, cannot perform relative import
错误一个原因为包内使用相对路径,改用
python -m
可解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: