浅谈Python2、Python3相对路径、绝对路径导入方法
os.path.dirname() 获取父目录
os.path.basename() #获取文件名或者文件夹名
python2缺省为相对路径导入,python3缺省为绝对路径导入
python2绝对路径导入
from __future__ import absolute_import
python2缺省会搜索上一级目录、上上级目录
解决方案:
import platform pver=platform.python_version() pversion= int(pver.split('.')[0]) try: if pversion==2: print(1) from .A import aa else: print(2) from A import aa except: print(3) from A import aa
异常处理版:
try: from .A import aa print(12) except: print(22) from A import aa
其他重点
1、包之所以为包,取决于是否有__init__.py文件
2、相对路径导入仅用于包内,同一个顶级包内
3、当前目录:
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可解决。
以上这篇浅谈Python2、Python3相对路径、绝对路径导入方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python 中导入csv数据的三种方法
Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组,用来训练算法模型.: from csv importreader import numpy as np filename=input("请输入文件名: ") withopen(filename,'rt',encoding='
-
浅谈Python2、Python3相对路径、绝对路径导入方法
os.path.dirname() 获取父目录 os.path.basename() #获取文件名或者文件夹名 python2缺省为相对路径导入,python3缺省为绝对路径导入 python2绝对路径导入 from __future__ import absolute_import python2缺省会搜索上一级目录.上上级目录 解决方案: import platform pver=platform.python_version() pversion= int(pver.split('.')[
-
浅谈Python2.6和Python3.0中八进制数字表示的区别
在Python2.x中表示八进制的方式有两种:以'0'开头和以'0o'(字母o)开头: Python2.7中: >>> 0100 64 >>> 0o100 64 >>> 而在Python3.x中则废弃了以'0'开头的表示方式,只支持'0o'开头的表示形式: Python3.4: >>> 0100 SyntaxError: invalid token >>> 0o100 64 以上这篇浅谈Python2.6和Pytho
-
浅谈Python2获取中文文件名的编码问题
问题: Python2获取包含中文的文件名是如果不转码会出现乱码. 这里假设要测试的文件夹名为test,文件夹下有5个文件名包含中文的文件分别为: Python性能分析与优化.pdf Python数据分析与挖掘实战.pdf Python编程实战:运用设计模式.并发和程序库创建高质量程序.pdf 流畅的Python.pdf 编写高质量Python代码的59个有效方法.pdf 我们先不转码直接打印获取到的文件名,代码如下: import os for file in os.listdir('./te
-
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
Python2中编码相关的问题很是让人蛋疼,特别是中文字符. 比如本文所述的中文网页GBK编码的诡异问题. 现象 例如:盲录職氓聭聵,其实网页里面正常的应该是会员 分析 接着上面的例子,会员这部分乱码通过repr()函数求值得到如下结果 \xc3\xa4\xc2\xbc\xc2\x9a\xc3\xa5\xc2\x91\xc2\x98 使用type()函数求值得到的结果为unicode eval(repr())出来值为 盲录職氓聭聵 通过查表上述6个汉字对应 c3a4 c2bc c29a c3a5
-
浅谈Maven包冲突的原理及解决方法
1.概述 Apache Maven ,是一个软件(特别是Java软件)项目管理及自动构建工具.在没有Maven的上古年代,项目中引入jar包需要手动下载一个个的去下载,但是随着代码数量的增加,引入的jar包数量自然会增加,随之而来的就是jar包冲突的问题了. 2.产生jar包冲突的原因 众所周知,一个项目中不能存在两个全限定类名一致的Class类,并且jar包的本质就是打包好的Class类文件,例如: 将 junit-jupiter-api-5.6.2.jar 文件解压后, 可以得到多个Clas
-
浅谈Scala的Class、Object和Apply()方法
Scala中如果一个Class和一个Object同名,则称Class是Object的伴生类.Scala没有Java的Static修饰符,Object下的成员和方法都是静态的,类似于Java里面加了Static修饰符的成员和方法.Class和Object都可以定义自己的Apply()方法,类名()调用Object下的Apply()方法,变量名()调用Class下的Apply()方法. class ApplyTest{ def apply() { println("This is a class,
-
浅谈几种常用的JS类定义方法
// 方法1 对象直接量 var obj1 = { v1 : "", get_v1 : function() { return this.v1; }, set_v1 : function(v) { this.v1 = v; } }; // 方法2 定义函数对象 var Obj = function() { var v1 = ""; this.get_v1 = function() { return this.v1; }; this.set_v1 = function
-
浅谈java 执行jar包中的main方法
浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看: java -classpath ****.jar ****.****.className [args] "****.****"表示"包名": "className"表示&
-
浅谈Python类的__getitem__和__setitem__特殊方法
一个有点绕的例子,用PyScripter调试器步进跟踪可以看清楚对 象结构的具体细节. 对原作改变了一下,在未定义子对象属性时__getitem__中使用现成的__setitem__来定义. ## encoding:utf-8 """ 这个类继承了object, object是Python的最小单元,可以在Python的">>>"控制台用dir(objct)或者dir (__builtins__.object)命令查看它的属性,可以看到_
-
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
1.html_entity_decode():把html实体转换为字符. Eg:$str = "just atest & 'learn to use '"; echo html_entity_decode($str); echo "<br />"; echo html_entity_decode($str,ENT_QUOTES); echo "<br />"; echo html_entity_decode($st
随机推荐
- SyntaxHighlighter代码加色使用方法
- 点击文字链接弹出确认框基于js Confirm实现
- com1/lpt1/prn/nul 木马后门处理方法集合
- java中public class与class的区别详解
- php函数实现判断是否移动端访问
- 安装Python的web.py框架并从hello world开始编程
- C# 排序算法之堆排序
- 教你如何在MySQL命令行中使用SQL语句的规则
- jQuery实现可以编辑的表格实例详解【附demo源码下载】
- jQuery动态添加<input type="file">
- 一个浙江人的23条经典经商法则!想成功必看
- jquery 缓存问题的几个解决方法
- IIS服务器下安装配置XCache缓存器方法及XCache下载
- 阿里云云服务器Windows 2008下IIS添加网站绑定域名图文教程
- 为Nginx添加SPDY功能
- ASP.NET 导出到Excel时保留换行的代码
- Thinkphp自定义代码生成工具及用法说明(附下载地址)
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法解析
- 在windows系统下如何安装memcached的讲解
- Node.js如何对SQLite的async/await封装详解