python 中 os.path

  1. os.path.abspath(path)
    返回path规范化的绝对路径。
>>> os.path.abspath('test.csv') 
'C:\\Python25\\test.csv' 
>>> os.path.abspath('c:\\test.csv') 
'c:\\test.csv' 
>>> os.path.abspath('../csv\\test.csv') 
'C:\\csv\\test.csv' 
  1. os.path.split(path)
    将path分割成目录和文件名二元组返回。
>>> os.path.split('c:\\csv\\test.csv') 
('c:\\csv', 'test.csv') 
>>> os.path.split('c:\\csv\\') 
('c:\\csv', '') 
  1. os.path.dirname(path)
    返回path的目录。其实就是os.path.split(path)的第一个元素。
>>> os.path.dirname('c:\\csv\test.csv') 
'c:\\' 
>>> os.path.dirname('c:\\csv') 
'c:\\' 
  1. os.path.basename(path)
    返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。
>>> os.path.basename('c:\\test.csv') 
'test.csv' 
>>> os.path.basename('c:\\csv') 
'csv' (这里csv被当作文件名处理了) 
>>> os.path.basename('c:\\csv\\') 

os.path.dirname(file)返回脚本的路径,但是需要注意以下几点:
1、必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name 'file' is not defined
2、在运行的时候如果输入完整的执行的路径,则返回.py文件的全路径如:
Python c:/test/test.py 则返回路径 c:/test ,如果是python test.py 则返回空
3、结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合
os.path.dirname(os.path.abspath(file)),os.path.abspath(file)返回的是.py文件的绝对路径
这就是os.path.dirname(file)的用法,其主要总结起来有:
1、不要已命令行的形式来进行os.path.dirname(file)这种形式来使用这个函数
2、结合os.path.abspath()使用


In [1]: import os
In [2]: os.__file__
Out[2]: '/usr/lib/python2.7/os.pyc'
In [3]: os.path.dirname(os.__file__)
Out[3]: '/usr/lib/python2.7'
posted @ 2017-08-28 20:25  zijie  阅读(133)  评论(0)    收藏  举报