sys.path os.path

Posted fanggege

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sys.path os.path相关的知识,希望对你有一定的参考价值。

前言

写django 经常看见两个模块的使用,在此记录一下

区别

sys.path  是一个列表,是python 环境变量的搜索列表

os.path   是一个对象,有很多的关于路径的方法

sys.path  的使用

技术分享图片
import sys  
sys.path.append(’引用模块的地址)  
  
#或者  
import sys  
sys.path.insert(0, 引用模块的地址)  
View Code

sys.path是个列表,所以在末尾添加目录是很容易的,用sys.path.append就行了。当这个append执行完之后,新目录即时起效,以后的每次import操作都可能会检查这个目录。如同解决方案所示,可以选择用sys.path.insert(0,…)这样新添加的目录会优先于sys.path中的其他目录被import检查。

os.path 的使用

技术分享图片
os.path.abspath(path)  #返回绝对路径  
os.path.split(path     #将path分割成目录和文件名二元组返回  
os.path.dirname(path)  #返回path的目录。其实就是os.path.split(path)的第一个元素  
os.path.basename(path) #返回path最后的文件名  
os.path.exists(path)   #如果path存在,返回True;如果path不存在,返回False  
os.path.isabs(path)    #如果path是绝对路径,返回True  
os.path.isfile(path)   #如果path是一个存在的文件,返回True。否则返回False  
os.path.isdir(path)    #如果path是一个存在的目录,则返回True。否则返回False  
os.path.getatime(path) #返回path所指向的文件或者目录的最后存取时间  
os.path.getmtime(path) #返回path所指向的文件或者目录的最后修改时间   
s.path.join(path1[, path2[, ...]])  #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。  
>>> os.path.join(c:\, csv, test.csv)  
c:\csv\test.csv  
>>> os.path.join(windows	emp, c:\, csv, test.csv)  
c:\csv\test.csv  
>>> os.path.join(/home/aa,/home/aa/bb,/home/aa/bb/c)  
/home/aa/bb/c  
View Code

总结

sys.path  添加的路径是暂时的,当前python 环境退出后此添加的路径就会消失

 

os.path.abspath(__file__)      为获取当前文件的绝对路径 ,此命令所在文件的绝对路径,包含文件
os.path.dirname()            为获取当前路径上一级的路径

django 中settings.py 的应用:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)

 

以上是关于sys.path os.path的主要内容,如果未能解决你的问题,请参考以下文章

python程序运行路径和当前文件路径?os.getcwd()os.path.abspath(__file__)sys.path[0]sys.argv[0]realpath(__file__)

python程序运行路径和当前文件路径?os.getcwd()os.path.abspath(__file__)sys.path[0]sys.argv[0]realpath(__file__)

Python模块详解以及import本质,获得文件当前路径os.path.abspath,获得文件的父目录os.path.dirname,放到系统变量的第一位sys.path.insert(0,x)

22.BASE_DIR,os,sys

python导包问题,这一篇就够了

[python]mkdir出现WindowsError:[Error 3]解决办法