绝对和相对路径的区别
2016-02-26 00:07
323 查看
一:
相对路径是相对脚本文件来的。
比如脚本在C:/python目录下,相同目录下有一个文件叫test.txt
那么绝对路径就是 C:/python/test.txt,相对路径就是test.txt
二:
python2绝对路径导入
如果需要保持python2与python3皆可用,避免出现
则需要使用相对路径导入,即
python2缺省会搜索上一级目录、上上级目录
相对路径导入仅用于包内,同一个顶级包内
当前目录:
play$ python main.py
play为当前目录
play$ python test/main.py
play/test为当前目录
play$ python -m test.main
play为当前目录
出现
相对路径是相对脚本文件来的。
比如脚本在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可解决
相关文章推荐
- 二叉树morris遍历的算法笔记(手写)
- PHP之序列化
- tomcat异常
- 如何在 Linux/Windows/MacOS 上使用 .NET 进行开发
- 使用 Redis 和 Python 构建一个共享单车的应用程序
- 详解Spring Boot Junit单元测试
- Android应用开发中Action bar编写的入门教程
- 简析Python的闭包和装饰器
- 20. Valid Parentheses
- ExtJS4的文本框(textField)使用正则表达式进行验证(Regex)的方法
- asp.net生成字母和数字混合图形验证码
- asp.net DropDownList实现二级联动效果
- PHP中array_keys和array_unique函数源码的分析
- 关于PHP 如何用 curl 读取 HTTP chunked 数据
- PHP将二维数组某一个字段相同的数组合并起来的方法
- PHP实现根据时间戳获取周几的方法
- PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
- PHP文件缓存smarty模板应用实例分析
- 详解PHP的Laravel框架中Eloquent对象关系映射使用
- 学习使用jquery iScroll.js移动端滚动条插件