python导入路径_python之路径导入

问题:

最近在学习import的时候,发现不像import xxx,或者from xxx import ooo

这样简单。比如,看下面这个图:

要导入才能在te.py调用pre.tab.py??

直接导入:

import pre_tab

Traceback (most recent call last):

File "C:/Users/Administrator/PycharmProjects/laonanhai/shop_store/test/te.py", line 14, in

import pre_tab

ImportError: No module named 'pre_tab'

知识点:

通过看视频,学到了下面两点:

1. os.path.abspath(__file__) 返回当前文件的绝对路径

在te.py文件下:

import os

x = os.path.abspath(__file__)

print(x)

输出:

 View Code

2.os.path.dirname() 返回当前文件的上一层路径

在te.py文件下:

x1 = os.path.dirname(os.path.dirname(x))

print(x1)

sys.path.append(x1)

print(sys.path

输出:

 View Code

最后,通过print(sys.path)可以看到,

C:\Users\Administrator\PycharmProjects\laonanhai\shop_store路径已经加入sys.path

额外收获

在pre_tab.py文件下:

"""

C:\Users\Administrator\PycharmProjects\laonanhai\shop_store\pre_tab.py

"""

print("AA")

竟然,曝错了!!!

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 3-4: truncated \UXXXXXXXX escape

后来参考了

http://blog.youkuaiyun.com/wlsyn/article/details/49613867原来是文件路径中,反斜杠 \u 报的错,在反斜杠后面再加一个反斜杠转义了就行了,经测试,注释后的代码不报错,去掉注释,也能正常读写文件

随笔补充:关于__import__

obj = __import__("lib.manager")

print(obj) #没有导入manager.py

#

obj.order() #AttributeError: 'module' object has no attribute 'order'

obj1 = __import__("lib.manager", fromlist=True) #表示按路径连接方式导入

print(obj1) #导入manager

#

obj1.order() #成功执行lib下的manager.py的order()方法

出处:http://www.cnblogs.com/0zcl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值