sys.path.insert()用法 路径的相关知识

Python import module 的搜索路径由sys.path指定,实质为一个列表,列表索引先后决定搜索优先级。

模块要处于Python搜索路径中的目录里才能被导入,但我们不喜欢维护一个永久性的大目录,因为其他所有的Python脚本和应用程序导入模块的时候性能都会被拖累。本节代码动态地在该路径中添加了一个"目录",当然前提是此目录存在而且此前不在sys.path中。sys.path是个列表,所以在末尾添加目录是很容易的,用sys.path.append就行了。当这个append执行完之后,新目录即时起效,以后的每次import操作都可能会检查这个目录。如同解决方案所示,可以选择用sys.path.insert(0,…,这样新添加的目录会优先于其他目录被import检查。即使sys.path中存在重复,或者一个不存在的目录被不小心添加进来,也没什么大不了,Python的import语句非常聪明,它会自己应付这类问题。但是,如果每次import时都发生这种错误(比如,重复的不成功搜索,操作系统提示的需要进一步处理的错误),我们会被迫付出一点小小的性能代价。为了避免这种无谓的开销,本节代码在向sys.path添加内容时非常谨慎,绝不加入不存在的目录或者重复的目录。程序向sys.path添加的目录只会在此程序的生命周期之内有效,其他所有的对sys.path的动态操作也是如此。

添加进去之后要用的时候直接import filename

sys.path.insert(1, path),定义搜索路径的优先顺序,序号从0开始,表示最大优先级,sys.path.insert()加入的是临时搜索路径,程序退出后失效。使用sys.path.append()方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在python程序退出后失效。

 os.path.realpath,得到的是执行脚本的绝对路径     os.path.cwd(),获取当前脚本的所在路径

from PyMySQL import insert_sql
import os
insert_sql.getpath()
path = os.getcwd()
print('cia cwd', path)
file = os.path.realpath(__file__)
print('cia file:', file)

'''
insert_sql file: /Users/wangxiansheng/Documents/Pycharm/PyMySQL/insert_sql.py
insert_sql cwd: /Users/wangxiansheng/Documents/Pycharm/christian
'''
#输出如下:
cia cwd /Users/wangxiansheng/Documents/Pycharm/christian
cia file: /Users/wangxiansheng/Documents/Pycharm/christian/cia.py

os.path.dirname(path):去掉脚本的文件名,返回目录。

os.path.dirname(os,path.realname(__file__)):指的是,获得你刚才所引用的模块 所在的绝对路径,__file__为内置属性

关于os.path.dirname详细参考 Python中获取路径os.getcwd()和os.path.dirname(os.path.realpath(__file__))的区别和对比

os.path.dirname用法

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值