Python os.path, sys.path

1.sys.path —— 动态地改变Python搜索路径

如果python中导入的package或module不在环境变量PATH中,那么可以使用sys.path将要导入的package或module加入到PATH环境变量中。

  1. import sys  
  2. sys.path.append(’引用模块的地址')  
  3.   
  4. #或者  
  5. import sys  
  6. sys.path.insert(0, '引用模块的地址')  

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

      即使sys.path中存在重复,或者一个不存在的目录被不小心添加进来,也没什么大不了,Python的import语句非常聪明,它会自己应付这类问题。但是,如果每次import时都发生这种错误(比如,重复的不成功搜索,操作系统提示的需要进一步处理的错误),我们会被迫付出一点小小的性能代价。

      程序向sys.path添加的目录只会在此程序的生命周期之内有效,其他所有的对sys.path的动态操作也是如此。
 

2.python中获取当前工作目录

  1. import os  
  2. curDir = os.getcwd()  

备注:os.getcwd()返回的是执行命令时所在的目录,而不是脚本本身所在的目录

3.os.path模块

  1. os.path.abspath(path)  #返回绝对路径  
  2. os.path.split(path     #将path分割成目录和文件名二元组返回  
  3. os.path.dirname(path)  #返回path的目录。其实就是os.path.split(path)的第一个元素  
  4. os.path.basename(path) #返回path最后的文件名  
  5. os.path.exists(path)   #如果path存在,返回True;如果path不存在,返回False  
  6. os.path.isabs(path)    #如果path是绝对路径,返回True  
  7. os.path.isfile(path)   #如果path是一个存在的文件,返回True。否则返回False  
  8. os.path.isdir(path)    #如果path是一个存在的目录,则返回True。否则返回False  
  9. os.path.getatime(path) #返回path所指向的文件或者目录的最后存取时间  
  10. os.path.getmtime(path) #返回path所指向的文件或者目录的最后修改时间   
  11. s.path.join(path1[, path2[, ...]])  #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。  
  12. >>> os.path.join('c:\\', 'csv', 'test.csv')  
  13. 'c:\\csv\\test.csv'  
  14. >>> os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')  
  15. 'c:\\csv\\test.csv'  
  16. >>> os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c')  
  17. '/home/aa/bb/c'  

猜你喜欢

转载自blog.csdn.net/Scrat_Kong/article/details/84711530